相关疑难解决方法(0)

jQuery .live()如何工作?

我在考虑表现

.click() VS .live("click")

这让我想知道.live是如何运作的.

它是否监视DOM更改以及何时检测到DOM中的更改它只是附加事件然后,它是否使用某种计时器(我不这么认为,但如果这样做非常重要,计时器会让我感到难过人)

jquery

8
推荐指数
2
解决办法
2242
查看次数

在jQuery中监听文档级别的事件是否有任何缺点?

要听取元素上的事件,我想在文档层面上倾听:

$(document).on('click', '.myclass', function() {/*do something*/});
Run Code Online (Sandbox Code Playgroud)

比元素级别的风格更好:

$('.myclass').on('click', function() { /*do something*/ }); 
Run Code Online (Sandbox Code Playgroud)

原因是第一种风格也适用于动态添加的新元素.您还可以在Bootstrap中看到此样式使用了很多:https://github.com/twitter/bootstrap/blob/master/js/bootstrap-alert.js

我想广泛使用第一种风格.但是我想知道这种风格是否有任何缺点,比如性能?

jquery javascript-events

8
推荐指数
1
解决办法
5199
查看次数

使用jQuery on()连接click事件不会通过Ajax调用触发注入的HTML

我有一个部分视图,它是通过一个带有html数据类型的Ajax调用返回的 - 在这个html中是一个带有id的锚标签,我使用jQuery的.on()API和框架的1.7.1版连接点击事件.

为简洁起见,想象部分视图如下:

<div id="container" class="modal-dialog">
    <h1>Heading</h1>
    <a id="thelink" href="#">
        <img src="<%:Url.Content("~/Path/To/Image.jpg")%>" /></a>
</div>
Run Code Online (Sandbox Code Playgroud)

..并通过一个标准的$.ajaxPOST到一个MVC控制器动作,它返回上面的部分视图结果,我拦截并吐入模态对话框.

我试图连接的事件代码如下所示:

$(function () {
    $("#thelink").on("click", function (e) {
        e.preventDefault();
        $("#jquery-ui-dialog-box").dialog("close");
    });
});
Run Code Online (Sandbox Code Playgroud)

现在,如果我切换on()live()- 一切都按预期工作.使用上面的代码虽然在IE8(IE8标准模式)中事件没有触发 - 断点没有被击中,jQuery UI模式没有按照上面的例子关闭.live()虽然有一个电话,但一切都按预期工作.

这是我第一次也是唯一一次看到on()的行为与不推荐使用或'卷起'事件绑定API(委托,实时,绑定)之间的差异.

我没有回复使用live()或者delegate()想了解为什么会发生这种情况的问题,如果可能的话!

关心SB

jquery

6
推荐指数
1
解决办法
3110
查看次数

标签 统计

jquery ×3

javascript-events ×1