我正在尝试将实时点击事件应用于动态添加元素到可编辑的iframe。
$('#iframeView').contents().find('*').on("click", function(e) {
e.stopPropagation();
e.preventDefault();
selectItemElement($(this));
});
这适用于将事件应用于iframe中的元素,但如果我向iframe添加新元素,则他们不再获得on click事件。所以它不适用于直播活动。
任何想法如何让这个工作?
答案 0 :(得分:1)
您需要委派您的事件,这意味着将事件添加到静态容器中。 iFrame document
将构成一个好的静态容器,这是使用.contents()
将获得的容器。
如果事件的目标元素与您的选择器(.on()
的第二个参数)匹配,则将调用该函数。
$('#iframeView').contents().on("click", '*', function (e) {
e.stopPropagation();
e.preventDefault();
selectItemElement($(this));
});
答案 1 :(得分:1)
从您可以使用的documentation:
$( selector ).live( events, data, handler ); // jQuery 1.3+
$( document ).delegate( selector, events, data, handler ); // jQuery 1.4.3+
$( document ).on( events, selector, data, handler ); // jQuery 1.7+
例如:
$('#iframeView').contents().on("click",'*',function (e) {
//Your code here
});