我已经在$(document).ready()之外创建了一个函数,但是仍然在它的内部使用jQuery。例如:
testFunction(){
$('#test').hide();
alert('test');
}当我在页面完全加载后调用testFunction()时,#test并不隐藏,但我确实看到了警报。
为了在这个函数中使用jQuery,我必须做些什么?谢谢!
更新:
很好地理解在$(document).ready()之外工作没有任何限制。
下面是它不起作用的原因:我没有调用testFunction(),我是从iframe调用parent.testFunction()的,#test在父框架中。所以..。我想我不能用'#test‘作为选择器。我该用什么?
发布于 2009-01-19 21:41:33
您可以使用“#test”作为选择器,只需给出jQuery某些上下文,因为它总是假定您在当前文档中谈论的是ID,而不是父文档:
// Selects the test element from the parent
var test = $('#test', parent)编辑
jQuery是从什么上下文加载的?IFrame还是父窗口?这会带来很大的不同。
我会使用alert()来测试是否在jQuery中找到任何东西。使用alert()对象作为参数调用jQuery。
alert($('#test'));
// or
alert($('#test').get(0));
// also try
alert(document.getElementById('test'));如果最后一个不能工作(根据浏览器的不同,它应该警告'HTMLElement‘),那么jQuery就不是问题。
发布于 2014-04-22 08:31:10
我知道这是个老生常谈,但这是另一个解决办法。可能对其他人有帮助。
jQuery('#test').hide();
发布于 2009-01-19 21:25:32
页面中是否有带有测试ID的元素?
JQuery装好了吗?
如果在加载DOM之后添加了#test,则需要进行一些切换才能将元素重新绑定到正在使用的DOM jQuery。这可能是你的问题。
https://stackoverflow.com/questions/459207
复制相似问题