2009-01-19 56 views
2

我在$(document).ready()之外創建了一個函數,但我仍然在裏面使用jQuery。例如:

testFunction(){ 
    $('#test').hide(); 
    alert('test'); 
} 

當我打電話testFunction()在頁面完全加載後,#TEST是不是隱藏,但我確實看到了警報。

爲了在這個函數裏面使用jQuery我該做些什麼?謝謝!

UPDATE:

好懂也有對工作以外的$(document)。就緒沒有限制()。

這就是爲什麼它不工作:我沒有調用testFunction(),我從iframe調用parent.testFunction(),並且#test在父框架中。所以...我想我不能使用'#test'作爲選擇器。我應該使用什麼?

+0

如果您在$(document).ready()中調用它,它會起作用嗎? – AnthonyWJones 2009-01-19 21:25:39

回答

3

您可以使用「#test」作爲一個選擇,你只需要給jQuery some context,因爲它總是假定你在當前文檔中談到的ID,而不是父:

// Selects the test element from the parent 
var test = $('#test', parent) 

編輯
從什麼上下文jQuery被加載? IFrame或父窗口?這可以造成很大的差異。

我會使用alert()來測試是否有任何發現與jQuery。用jQuery對象作爲參數調用alert()

alert($('#test')); 
// or 
alert($('#test').get(0)); 
// also try 
alert(document.getElementById('test')); 

如果最後一個不工作(它應提醒「HTML元素」,這取決於瀏覽器)然後jQuery是沒有問題的。

0

在頁面中是否存在具有測試ID的元素?

是否加載了JQuery?

如果您在加載DOM後添加了#test,您將需要做一些小動作來重新綁定jQuery正在使用的DOM元素。這可能是你的問題。

1

我知道這是有點古老的線程,但這裏有另一種解決方案。可能幫助別人:D。
jQuery('#test').hide();

相關問題