Javascript 韩元';行不通

Javascript 韩元';行不通,javascript,jquery,css,wordpress,Javascript,Jquery,Css,Wordpress,我在drupal教程中找到了这个函数。有人能给我解释一下,为什么下面的javascript在我的wordpress安装中不起作用,并能给我一个解决方案吗 ; (function ($) { "use strict"; var $corn = $('.corn-anchor'); $corn.each(function(idx, el) { var $el = $(el); $el.once('corn-animation', function() { $(w

我在drupal教程中找到了这个函数。有人能给我解释一下,为什么下面的javascript在我的wordpress安装中不起作用,并能给我一个解决方案吗

;
(function ($) {
 "use strict";
  var $corn = $('.corn-anchor');
  $corn.each(function(idx, el) {
    var $el = $(el);
    $el.once('corn-animation', function() {
      $(window).on('load', function() {
        new Waypoint({
          element: el,
          handler: function(direction) {
            $el.toggleClass('corn-animated', (direction == 'down'));
          },
          offset: '85%'
        });
      });
    });
  });
});

我想用它来切换一些分区包装器,通过使用css转换和.corn动画选择器来设置这些包装器中元素的动画。我正在使用waypoints插件。我甚至没有在调试器中收到错误消息,尽管当我向下滚动到带有corn anchor类的元素时没有添加toggleClass。

函数中的代码从未运行过。看看它,最后一行应该是

    })(jQuery);
//    ^^^^^^^^---- *call* the function, passing in `jQuery`
不是

另外,请确保在HTML的加载了
脚本
标记,就在关闭
标记之前(以及包含jQuery的
脚本
标记之后)。否则,它将运行得太快,找不到任何
.corn-anchor
元素

如果您无法控制脚本的结尾(因为您使用的是Wordpress),而不是更改最后一行,请更改第一行:

jQuery(function ($) {

调用
jQuery
,传入该函数;jQuery将在解析HTML并填充DOM后调用该函数(将自身作为第一个参数传入);它是的别名。

您正在声明一个匿名函数,却从未调用过它?!是的,这似乎很明显,但恐怕我对这一点很陌生,只是想通过实践来学习:/Hi T.J,非常感谢您的回复!我用了昨晚的大部分时间来解决这个问题,但没能让它正常工作。在使用jQuery(function)($){调试器给了我一些错误,我不得不将$el.once('corn-animation',function(){更改为$el.each(function(){瞧,它工作了!:)你能解释一下为什么$el.once('corn-animation',function())没有完成工作吗?不过谢谢,谢谢,非常感谢!@DoUtDes:
$el.once('corn-animation',…
corn animation
事件连接一个事件处理程序,该事件在第一次触发时会自动删除。坦率地说,该代码没有太多意义,因为它里面的东西正在为
窗口上的
加载
事件连接一个处理程序。这样做似乎很奇怪。你知道吗可能是对的,因为我必须修改它(在您的帮助下)+它是从drupal教程中复制出来的,其中函数看起来有点不同,因为它们是从drupal.behaviors.name={attach:function(上下文,设置)开始的{我发布的代码…但由于Wordpress不知道Drupal.behaviors.name之类的内容,因此前两行代码无法工作
jQuery(function ($) {