0

jQuery.noConflict()在顶部加载了 jQuery(在 WordPress 中)。

然后我有以下自定义功能:

var equalizeHeights = function(){
  $('.header').height(500);
}

我这样称呼.ready()

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

$in 函数参数应该使 jQuery 变量的简写版本在整个块中可用,但是我实际尝试在函数中设置高度的行在控制台equalizeHeights()中返回错误。

Uncaugth TypeError: Property '$' of object [object Object] is not a function

我确信我已经加载了库,这不是问题,因为如果我在调用它之前console.log的变量会返回一个有效的 jQuery 对象。问题是由于某种原因没有被子函数继承。$equalizeHeights()$

使$全局和分配$ = jQuery不是一种选择。

有任何想法吗?

4

2 回答 2

1

您必须equalizeHeights在就绪回调函数的范围内定义

jQuery(function($){
    equalizeHeights($);
    var equalizeHeights = function($){
        $('.header').height(500);
    }
});

如果你需要它是全球性的,

var equalizeHeights;
jQuery(function($){
    equalizeHeights = function($){
        $('.header').height(500);
    }
    equalizeHeights($);
});
于 2013-08-16T13:13:30.550 回答
1

您可能想尝试:

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

    var equalizeHeights = function($){
        $('.header').height(500);
    }

并通过函数调用传递 $ 。否则,对 jQuery 的引用 '$' 将丢失。

于 2013-08-16T13:07:19.290 回答