页面上的多个jquery document.ready槽ajax

问题描述:

我有一个页面,它使用jQuery document.ready来填充单击按钮时div的内容。页面上的多个jquery document.ready槽ajax

div内的内容也使用jquery来创建图像的悬停预览(也在此div内)。但我不能再次使用document.ready。这应该如何实施?

您可以随意多次使用document.ready。他们从头到脚执行。

使用回调函数或函数。或两者。

$(document).ready(function(){ 
    $(element).click(function(){ 
     alert('bla') 
    }); 
    $(element).hover(function(){ 
     call_alert('bla'); 
    }); 
}); 
function call_alert(stringer) { alert(stringer) } 
+0

所以,如果你,但在TJAT按钮属性附加伤害:的onClick = “call_alert( '你好')”,将工作如你所愿。 –

+0

使用jquery的主要原因之一是,所以我们不需要在html标记中拥有我们的js功能 –

+0

我不认为这很糟糕。 AJAX之后重新设置事件是很难想到的。 –

,如果你做到以下几点,它类似的document.ready

(function(){ 
    //your code here 
    alert('this fired when the dom was ready'); 
})(); 

虽然真正的问题是实际上没有涉及到的document.ready。这只是使得脚本不会被执行,直到dom中的所有内容都被加载到浏览器缓存中。基本上只是创建你的函数绑定按钮点击,然后在其回调绑定悬停功能的图像。否则,查看图像的.live()函数。

+0

这可能是一个很好的答案。如果你实际上不需要document.ready,你应该使用.live ... http://api.jquery.com/live/ – frosty

$(文件)。就绪(函数(){ })

只是说对文档对象的就绪事件,在加载DOM时触发一个事件这个匿名函数中执行的代码。

其中,您可以根据需要为尽可能多的事件分配尽可能多的功能。

在加载dom之前,Javascript会被解析,并且所有的函数都会绑定到浏览器的存储器中的事件。所以,你所说的是将所有这些函数绑定到所有这些事件,但只有在dom准备好之后,才能保存查找还没有被解析的元素。

你可以像下面这样做

$(document).ready(function() { 
$("h1").click(function() { 
alert("Someone clicked h1"); 
}); 
$("h2").hover(function() { 
alert("someone is hovering our h2s"); //never do this as it will fire endless alerts and crash the browser. 
}) 
}) 

或者这样:

function hover_func(el) { 
alert("someone is hovering over"+el.tagName); 
} 

function hover_func(el) { 
alert("someone clicked"+el.tagName); 
} 

$(document).ready(function() { 
$("h1").click('click_func($(this))'); 
$("h2").hover('hover_func($(this))'); 
})