javascript美元符号变量不起作用

标签 javascript jquery html wordpress dom

我的 Wordpress 中有以下代码:

(function ($) {
  var $header = $("div.header");

  $(window).bind("scroll resize", function () {
    if ($(window).scrollTop() > 30) {
      $("div.header").stop().animate({
        'opacity': 0.24
      }, {
        duration: 1000
      });
    } else {
      $header.stop().animate({
        'opacity': 1
      }, {
        duration: 1000
      });
    }
  });
})(jQuery);

If 语句在假定的时候开始但其他情况下永远不会......

但是

如果我附上它:

jQuery(document).ready(function($) {        
  // code here
});

一切都很好。为什么?

谢谢

最佳答案

可能是您在未构建 dom 时尝试使用 jQuery。尝试使用 $(document).ready 函数:

(function ($) {
  $(document).ready(function () {
    $header = $("div.header");
    $header.remove();
  });
})(jQuery);

关于你在问题中提到的内容:

jQuery(document).ready(function ($) {
  // code
});

它之所以有效,是因为它做同样的事情:它在 ready 事件上绑定(bind)事件处理程序,并将 jQuery 对象作为参数传递给函数作为 $.

现在你做了什么:

(function ($) {
  $header = $("div.header");
  $header.remove();
})(jQuery);

在这里,您只需声明带有命名$ 参数的匿名函数:

function ($) {
}

并以 jQuery 对象作为参数调用它,该对象将作为 $ 在函数中可用:

(function ($) {
})(jQuery);

关于javascript美元符号变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12274410/

相关文章:

javascript - 如何只显示一个具有相同类别的div,然后显示其他div

html - 如何在 Liferay 自定义主题中禁用 Alloy UI CSS?

javascript - 我如何包含模型数组?

javascript - 在 JavaScript 中,如何在执行复杂功能时更改文档元素?

javascript - 将对象保存到 AngularJS Controller 中的数组中

javascript - 获取与 setTimeout 或 setInterval 关联的函数

javascript - 如何从异步调用返回响应?

jquery - 为每个 div 增加 z-index

html - 如何禁用输入类型=文本的拼写检查?

html - 为什么一个 div 没有定位在另一个 div 旁边?