【问题标题】:InnerHTML - Self invoking function works, but why doesn't Jquery document ready work?InnerHTML - 自调用功能有效,但为什么 Jquery 文档无法正常工作?
【发布时间】:2014-11-13 00:13:09
【问题描述】:

我正在测试用 innerHTML 编写一些东西,没有任何事件处理程序。我想知道为什么 Jquery document ready 不起作用 - 我认为它应该是一个自调用函数?常规的自调用函数确实有效。

如果我在 HTML 中有这个

<div id="content">
  <p><span id="html_span1"></span></p>
  <p><span id="html_span2"></span></p>
</div>    

在 JS 中,常规的自调用函数起作用:

(function(){
     document.getElementById('html_span1').innerHTML = "self invoking function works";
}());    

但不是 Jquery 就绪函数:

$(document).ready(function() {
    document.getElementById('html_span2').innerHTML = "Is this displayed?";
});    

如果我将 Jquery 函数放在顶部,那么另一个函数将停止工作 - 怎么会? 此外,以 }()) 结尾的自我唤起功能; - 额外的括号非常重要,否则它不起作用。我不明白那个括号的含义是什么?

【问题讨论】:

  • $(document).ready 不是自调用函数。这意味着自调用将在 JS 解释该代码时立即调用自身。 $(document).ready 将在页面加载时调用
  • 好的,事情已经解决了,谢谢!

标签: innerhtml document-ready self-invoking-function


【解决方案1】:

如果你使用 Jquery,最好使用选择器:

$( document ).ready(function() {
// Handler for .ready() called.
    $("#html_span2").html("Is this displayed?");
});

看它运行并玩它: http://jsfiddle.net/c66t0tb2/

【讨论】:

  • 谢谢,所以在 Jquery 函数中使用常规 javascript(如 getElementById)不是很好吗?似乎我错过了一些一般规则..
  • 不,但是 JQuery 有很多你缺少的强大功能。是一个解决很多问题和事情的JS框架。选择器是 JQuery 拥有的更好的东西之一。如果你已经加载了,为什么不使用呢?
  • 其实 JQuery 是普通的 javascript。不是一种语言。
  • 我犯了一个愚蠢的错误 - 最初可能是其他原因导致了错误,但是当我在在线编辑器(Codepen)中进行测试时,我没有意识到 Jquery(可能)没有在那里启用。感谢您证明它有效。
  • 当然可以,但是我必须等到我获得 15 点声望点,一旦我到达那里我会投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
相关资源
最近更新 更多