理解jQuery ready事件

时间:2014-03-07 22:39:57

标签: javascript jquery html ajax

我正在尝试使用Ajax点击链接替换div和其他一些内容。 内容正在被取代。

问题在于现在我必须对这个新的div内容进行操作。所有操作代码都在(document).ready(function {});

问题是我无法在新div内容中运行mousedown事件的代码 我的页面来源仅显示旧的潜水内容。

任何帮助/指针将不胜感激。

TIA。

2 个答案:

答案 0 :(得分:1)

首先,您的源代码中不会反映任何JavaScript,只会在DOM中反映出来。前者是您的页面的物理代码,由服务器编译和发送,因为可能存在任何服务器端技术,而后者是浏览器已解析的操作源代码的当前状态,反映JavaScript所做的任何更改。

正如@adeneo在评论中所说,你需要研究委派的事件。诚然,这不是解决问题的唯一方法,但从长远来看,这对事件来说是明智的(特别是在涉及许多因素的情况下)。

委托事件的技巧是不绑定元素本身,而是绑定到公共父节点。在jQuery中,委托事件通过将过滤器选择器而不是回调作为第二个参数传递给.on()来处理(回调碰到第三个参数)。所以:

$('body').on('mousedown', 'div.foo', function() {
     //callback code
});

无论是在DOM中开始还是稍后注入,都会触发mousedown到任何 div类'foo'。对于非委托事件,情况并非如此,例如:

$('div.foo').on('mousedown', function() {
     //callback code
});

这只会绑定代码运行时DOM中匹配的div。它不适用于以后注入DOM的任何内容。

答案 1 :(得分:0)

查看jQuery'.on'

$('#mydiv').on('click',function(){


}