2009-01-19 41 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();

相关问题