首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在$(document).ready()之外使用.ready()

在$(document).ready()之外使用.ready()
EN

Stack Overflow用户
提问于 2009-01-19 21:21:37
回答 3查看 4.8K关注 0票数 1

我已经在$(document).ready()之外创建了一个函数,但是仍然在它的内部使用jQuery。例如:

代码语言:javascript
复制
testFunction(){
  $('#test').hide();
  alert('test');
}

当我在页面完全加载后调用testFunction()时,#test并不隐藏,但我确实看到了警报。

为了在这个函数中使用jQuery,我必须做些什么?谢谢!

更新:

很好地理解在$(document).ready()之外工作没有任何限制。

下面是它不起作用的原因:我没有调用testFunction(),我是从iframe调用parent.testFunction()的,#test在父框架中。所以..。我想我不能用'#test‘作为选择器。我该用什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-01-19 21:41:33

您可以使用“#test”作为选择器,只需给出jQuery某些上下文,因为它总是假定您在当前文档中谈论的是ID,而不是父文档:

代码语言:javascript
复制
// Selects the test element from the parent
var test = $('#test', parent)

编辑

jQuery是从什么上下文加载的?IFrame还是父窗口?这会带来很大的不同。

我会使用alert()来测试是否在jQuery中找到任何东西。使用alert()对象作为参数调用jQuery。

代码语言:javascript
复制
alert($('#test'));
// or
alert($('#test').get(0));
// also try
alert(document.getElementById('test'));

如果最后一个不能工作(根据浏览器的不同,它应该警告'HTMLElement‘),那么jQuery就不是问题。

票数 4
EN

Stack Overflow用户

发布于 2014-04-22 08:31:10

我知道这是个老生常谈,但这是另一个解决办法。可能对其他人有帮助。

jQuery('#test').hide();

票数 1
EN

Stack Overflow用户

发布于 2009-01-19 21:25:32

页面中是否有带有测试ID的元素?

JQuery装好了吗?

如果在加载DOM之后添加了#test,则需要进行一些切换才能将元素重新绑定到正在使用的DOM jQuery。这可能是你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/459207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档