我的jQuery顶部装有jQuery.noConflict()(在WordPress中)。

然后,我有以下自定义函数:

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


我这样调用.ready()

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


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

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

我确定已经加载了库,这不是问题,因为如果在调用console.log之前立即$ equalizeHeights()变量,它将返回一个有效的jQuery对象。问题是$出于某种原因未由子功能继承。

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

有任何想法吗?

最佳答案

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

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


如果您需要全球化的话

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

09-27 07:18