外部对象上的jQuery事件

时间:2015-11-30 14:52:55

标签: javascript jquery html html5

我有问题。 我正在寻找文档范围的点击事件,但我的网站的大块是通过带有innerHTML对象的div加载的。

<div id="contentHolder">            
    <script>
        document.getElementById("contentHolder").innerHTML='<object type="text/html" id="content" data="article.html"></object>';      
    </script>
</div>

这样的听众:

 $(document).on("click", function (event){
    alert("Click");
 });

仅注册点击ContentHolder之外的元素。 我意识到加载的内容可能有自己的document

您是否知道我可以在Object内引用此内容的方式? :) 我读了jQuery委托,但它似乎没有提供我的问题的解决方案。

我在Codepen上设置了一个半工作示例。它似乎不允许加载外部页面,这是可以理解的 - 但即使没有任何实际加载,问题仍然存在。该示例在本地工作。

修改

我自己解决了这个问题。您可以使用jQuery append而不是使用HTML Object作为容器,并且监听器不仅会从子文档的事件中保持活动状态,还会保持活动状态。

$.get('document.html', function(result) {
     $('#container').append(result);
});`

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

$('#contentHolder').on('click', '.class-to-be-named', function() {
    // do your click stuff
});

它将绑定#contentHolder上的点击事件,只要您在#contentHolder内点击,它就会查找是否点击了元素#contentHolder,何时调用回调。

答案 1 :(得分:0)

我自己解决了这个问题。您可以使用jQuery append而不是使用HTML Object作为容器,并且监听器不仅可以从子文档的事件中保持活动状态,还可以保持活动状态。

$.get('document.html', function(result) {
     $('#container').append(result);
});