首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单击事件不会在厚框内的元素上触发

单击事件不会在厚框内的元素上触发
EN

Stack Overflow用户
提问于 2015-03-11 13:39:50
回答 1查看 392关注 0票数 0

在我的wordpress插件中,我使用厚框模式窗口来显示项目列表。thickbox div中的内容是通过ajax请求生成的。我在这个div里面有输入复选框。不会触发这些复选框上的单击事件。

下面是我的代码:

代码语言:javascript
运行
复制
<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代码:

代码语言:javascript
运行
复制
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。

代码语言:javascript
运行
复制
<a href="#TB_inline?width=800&height=550&inlineId=wpb_media_tracks" class="thickbox">Add Tracks</a>

并且我将div#wpb_media_tracks设置为display: none;(这样它就只显示在thickbox模式中)。

谢谢,

EN

回答 1

Stack Overflow用户

发布于 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() { ... });

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28979345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档