2011-08-29 65 views
0

我有一個頁面,它使用jQuery document.ready來填充單擊按鈕時div的內容。頁面上的多個jquery document.ready槽ajax

div內的內容也使用jquery來創建圖像的懸停預覽(也在此div內)。但我不能再次使用document.ready。這應該如何實施?

回答

0

您可以隨意多次使用document.ready。他們從頭到腳執行。

0

使用回調函數或函數。或兩者。

$(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之後重新設置事件是很難想到的。 –

0

,如果你做到以下幾點,它類似的document.ready

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

雖然真正的問題是實際上沒有涉及到的document.ready。這只是使得腳本不會被執行,直到dom中的所有內容都被加載到瀏覽器緩存中。基本上只是創建你的函數綁定按鈕點擊,然後在其回調綁定懸停功能的圖像。否則,查看圖像的.live()函數。

+0

這可能是一個很好的答案。如果你實際上不需要document.ready,你應該使用.live ... http://api.jquery.com/live/ – frosty

0

$(文件)。就緒(函數(){ })

只是說對文檔對象的就緒事件,在加載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))'); 
})