Javascript 在所有元素上应用jquery代码
如何将jquery函数应用于使用ajax加载的元素Javascript 在所有元素上应用jquery代码,javascript,jquery,ajax,click,Javascript,Jquery,Ajax,Click,如何将jquery函数应用于使用ajax加载的元素 <span class="h">Test</span><br /><br /> <span class="h">Test</span><br /><br /> <span class="h">Test</span><br /><br /> .... <span class="h">Test&
<span class="h">Test</span><br /><br />
<span class="h">Test</span><br /><br />
<span class="h">Test</span><br /><br />
....
<span class="h">Test</span><br /><br />
<script type="text/javascript">
$(document).ready(function() {
$('.h').click(function() {
alert("test");
});
});
</script>
测试
测试
测试
....
测试
$(文档).ready(函数(){
$('.h')。单击(函数(){
警报(“测试”);
});
});
所以,这是完美的。每次单击span元素都会返回警报。
但在这里,单击功能不适用于使用ajax加载的元素:
<span class="h">Test</span><br /><br />
<span class="h">Test</span><br /><br />
<span class="h">Test</span><br /><br />
....
<span class="h">Test</span><br /><br />
<script type="text/javascript">
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
$('body').append('<span class="h">Test3</span><br /><br />');
}
});
$(document).ready(function() {
$('.h').click(function() {
alert("test");
});
});
</script>
测试
测试
测试
....
测试
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){
$('body').append('Test3
');
}
});
$(文档).ready(函数(){
$('.h')。单击(函数(){
警报(“测试”);
});
});
我如何解决这个问题?jQuery是您想要的:
$('.h').live('click', function () {
// Do something!
}
click()
函数只向调用它时出现的元素添加侦听器。您需要在以后添加的任何元素上再次调用它
或者,如@jerluc所述,使用
live()
函数。您必须使用live而不是click,以便事件也绑定到新附加的项:
$('.h').live('click', function() {
alert("test");
});
您需要
live
函数将事件绑定到动态创建的元素:
$('.h').live('click', function() {
alert("test");
});
你不是在重复这种行为。您需要使用jQuery的方法不断检查DOM中的新元素
因为当时我在回答中没有提到live函数。所以这实际上是合理的。你的回答仍然有效
live()
是最简单的方法,但是还有其他(更快的)方法可以获得相同的结果。我认为人们应该在投票时留下评论:)谢谢!我如何在这样的函数上使用它:$('#element').externscript({…});您可以将其放入您的$(文档).ready(…)
代替原来的代码,并将所需的点击事件代码放在注释//做点什么代码>以上警报工作正常。但现在我想将其应用于名为qtip->的jquery扩展,因此,我尝试了:$(document).ready(function(){$('#element').live('mouseover',function(){$(this.qtip();});});但是它不起作用。我的浏览器总是崩溃。你需要对特定的插件做一些更深入的研究。参考他们的API方法:我看不出你的观点。。该插件适用于jquery的ajax函数未添加的所有元素。那么问题出在哪里呢?
$(document).ready(function() {
$('.h').live('click', function() {
alert("test");
});
});