我正在尝试使用Ajax点击链接替换div和其他一些内容。 内容正在被取代。
问题在于现在我必须对这个新的div内容进行操作。所有操作代码都在(document).ready(function {});
中问题是我无法在新div内容中运行mousedown事件的代码 我的页面来源仅显示旧的潜水内容。
任何帮助/指针将不胜感激。
TIA。
答案 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(){
}