在我的wordpress插件中,我使用厚框模式窗口来显示项目列表。thickbox div中的内容是通过ajax请求生成的。我在这个div里面有输入复选框。不会触发这些复选框上的单击事件。
下面是我的代码:
<div id="wpb_media_tracks_container"> //This div is loaded into the thickbox and its contents are dynamically generated through ajax request
<table class="wp_media_tracks_table">
<thead>
<tr>
<th>Choose tracks</th>
<th>Filename</th>
<th>Title</th>
</tr>
</thead>
<tbody>
<tr valign="top">
<td scope="row">
<input type="checkbox" name="1522" value="1522">
</td>
<td>raagrang.mp3</td>
<td>raagrang</td>
</tr>
</tbody>
</table>
</div>jQuery代码:
jQuery('.wp_media_tracks_table input').on("click", function() {
postId = jQuery(this).val();
alert(postId);
});我还尝试使用这个选择器: jQuery('#wpb_media_tracks_container input')。但是没有结果。
有人能帮我找到代码中的问题吗?
编辑:
更多详细信息:
下面是一个'a‘元素,它调用thickbox来加载带有id=wpb_media_tracks的div。
<a href="#TB_inline?width=800&height=550&inlineId=wpb_media_tracks" class="thickbox">Add Tracks</a>并且我将div#wpb_media_tracks设置为display: none;(这样它就只显示在thickbox模式中)。
谢谢,
发布于 2015-03-11 13:45:18
由于该jQuery('.wp_media_tracks_table input')是通过ajax加载的,因此将无法识别此div。要附加事件侦听器,必须获取现有DOM (不是通过ajax加载的)的div#wpb_media_tracks_container的父对象。
例如,div#thickbox是包含div#wpb_media_tracks_container的父级,这应该适用于$('div#thickbox').on('click', 'input', function() { ... });
https://stackoverflow.com/questions/28979345
复制相似问题