2

我想使用 jQuery 选择已添加到 HTML5 内容可编辑 div 的项目。它现在不起作用,因为加载页面时该项目不存在。如何告诉 jQuery div 已更新?

请参阅此 jsfiddle 以获取测试代码:http: //jsfiddle.net/kthornbloom/sjHYQ/

$(document).ready(function() {

<!-- This wont work on an image dragged into the div after page load -->
$('#editor img').click(function(){
    $(this).fadeOut();
});

});​

我已经看到了有关此的其他问题,但似乎没有一个适用于内容可编辑的 div。

4

2 回答 2

3

尝试:

$('#editor').on('click', 'img', function() {
    $(this).fadeOut();
});​

jsFiddle 示例

由于您实际上是在绑定一个动态元素,因此您需要使用.on()来委托元素上的单击事件,#editor因为加载页面时编辑器 div 中没有图像。

于 2012-11-19T18:41:52.547 回答
0

您需要使用.on() JQuery 函数将事件附加到动态创建的元素

这是一个示例(我使用主体作为主要容器,但您需要更具体):

$("#editor").on({
    click: function (event) {    
        console.log('test')
       $(this).fadeOut();
    }
    },
    "img"
);

这是小提琴http://jsfiddle.net/sjHYQ/2/

于 2012-11-19T18:37:20.073 回答