jQuery单击通过脚本包含的元素

时间:2014-08-11 20:52:12

标签: javascript jquery

我有一个拉入表单的脚本,我想在单击该按钮后执行单击操作,但是因为我通过脚本包含表单,我似乎无法获取jQuery服务器与它进行交互 - 也许是因为这是jQuery的工作方式,但有什么方法或解决方法,我可以在哪里获得一个click事件来处理通过脚本包含的表单元素?

JS

<script charset="utf-8" src="//js.hsforms.net/forms/current.js"></script>

我的JS

    $(".actions input").click(function() {
        $(".pop-up").hide();
        $(".pop-up-thanks").show();
    });

1 个答案:

答案 0 :(得分:2)

为动态对象委派事件处理程序

您正在定位正在动态插入的元素,因此必须委派该事件。我们可以使用on()方法委托它,该方法必须绑定到静态对象才能实现委派。我们可以将on()绑定到(document),但建议使用更近的范围对象(例如$("#parent"))来执行此操作。

$("#parent").on( "click", ".actions input", function() {
    $(".pop-up").hide();
    $(".pop-up-thanks").show();
});

bind()live()delegate()on()的前身。目前,只有.live()被弃用而不是on(),而bind()delegate()继续与on共存 - 尽管{{1}是首选。

.bind() method

  

从jQuery 1.7开始,.on()方法是首选方法   将事件处理程序附加到文档。

.delegate() method

  

从jQuery 1.7开始,.delegate()已被.on()方法取代。   然而,对于早期版本,它仍然是最有效的手段   使用事件委托。

.live() method

  

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()来   附加事件处理程序。旧版jQuery的用户应该使用   .delegate()优先于.live()。