使用jquery从外部源(父级内的子级)捕获click事件

时间:2014-04-11 20:40:03

标签: javascript jquery html

我正在使用massrelevances polling功能。我包含一个嵌入代码(下面),它将html注入网页。

嵌入来自第三方的代码

<div class="mr-space" data-space-id="project-id"></div>
<script src="//platform.massrelevance.com/js/massrel.js"></script>
<script>
  massrel.ui.load();
</script>

我想从嵌入代码中注入的html中捕获一个click事件。

它将注册的唯一点击是当我将其设置为在体内查看时,这是不实际的,我需要它在div.option-buttons中注册一个点击

var link = {};

link.init = function() {
    $('.option-buttons').contents().on('click', function () {
      alert('clicked');
    });
}

window.onload = link.init;

从上面的嵌入代码生成的html

<div class="option-buttons">
    <a href="">Vote</a>
</div>  

1 个答案:

答案 0 :(得分:4)

目前尚不清楚,但你可以试试

    $(document).on('click', '.option-buttons a', function () {
      alert('clicked');
    });

修改

事件处理程序仅绑定到当前选定的元素;它们必须存在于您的代码进行事件绑定调用时的页面上。

委托事件的优势在于它们可以处理来自稍后添加到文档的后代元素的事件。

您需要使用Event Delegation。您必须使用委托事件方法来使用.on()

一般语法

$(document).on(event, selector, eventHandler);

理想情况下,您应该将document替换为最近的静态容器。