jQuery Uncaught TypeError:对象[object Window]的属性'$'不是函数 [英] jQuery Uncaught TypeError: Property '$' of object [object Window] is not a function
问题描述
全部, 我下载了预捆绑的JS/CSS表单应用程序,并试图在Wordpress中使用它.我有以下代码:
All, I downloaded a prebundled JS/CSS form application and I'm trying to use it in Wordpress. I've got the following code:
$(document).ready(function () {
/*----------------------------------------------------------------------*/
/* Parse the data from an data-attribute of DOM Elements
/*----------------------------------------------------------------------*/
$.parseData = function (data, returnArray) {
if (/^\[(.*)\]$/.test(data)) { //array
data = data.substr(1, data.length - 2).split(',');
}
if (returnArray && !$.isArray(data) && data != null) {
data = Array(data);
}
return data;
};
/*----------------------------------------------------------------------*/
/* Image Preloader
/* http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript
/*----------------------------------------------------------------------*/
// Arguments are image paths relative to the current page.
$.preload = function() {
var cache = [],
args_len = arguments.length;
for (var i = args_len; i--;) {
var cacheImage = document.createElement('img');
cacheImage.src = arguments[i];
cache.push(cacheImage);
}
};
/*----------------------------------------------------------------------*/
/* fadeInSlide by revaxarts.com
/* Fades out a box and slide it up before it will get removed
/*----------------------------------------------------------------------*/
$.fn.fadeInSlide = function (speed, callback) {
if ($.isFunction(speed)) callback = speed;
if (!speed) speed = 200;
if (!callback) callback = function () {};
this.each(function () {
var $this = $(this);
$this.fadeTo(speed / 2, 1).slideDown(speed / 2, function () {
callback();
});
});
return this;
};
/*----------------------------------------------------------------------*/
/* fadeOutSlide by revaxarts.com
/* Fades out a box and slide it up before it will get removed
/*----------------------------------------------------------------------*/
$.fn.fadeOutSlide = function (speed, callback) {
if ($.isFunction(speed)) callback = speed;
if (!speed) speed = 200;
if (!callback) callback = function () {};
this.each(function () {
var $this = $(this);
$this.fadeTo(speed / 2, 0).slideUp(speed / 2, function () {
$this.remove();
callback();
});
});
return this;
};
/*----------------------------------------------------------------------*/
/* textFadeOut by revaxarts.com
/* Fades out a box and slide it up before it will get removed
/*----------------------------------------------------------------------*/
$.fn.textFadeOut = function (text, delay, callback) {
if (!text) return false;
if ($.isFunction(delay)) callback = delay;
if (!delay) delay = 2000;
if (!callback) callback = function () {};
this.each(function () {
var $this = $(this);
$this.stop().text(text).show().delay(delay).fadeOut(1000,function(){
$this.text('').show();
callback();
})
});
return this;
};
/*----------------------------------------------------------------------*/
/* leadingZero by revaxarts.com
/* adds a leding zero if necessary
/*----------------------------------------------------------------------*/
$.leadingZero = function (value) {
value = parseInt(value, 10);
if(!isNaN(value)) {
(value < 10) ? value = '0' + value : value;
}
return value;
};
});
我以为Wordpress没有冲突会导致问题,所以我将最后一个括号更新为如下形式:
I was assuming that the Wordpress no conflict was causing an issue so I updated the very last bracket to look like the following:
}, "jQuery");
但是,我仍然遇到相同的错误.有谁知道会导致这个问题的原因以及如何解决这个问题?
However, I'm still getting the same error. Does anyone know what would be casuing this issue and how to get it resolved?
提前谢谢!
推荐答案
这是一个语法问题,WordPress随附的jQuery库以无冲突"模式加载.这是为了防止与WordPress可以加载的其他JavaScript库的兼容性问题.在无冲突"模式下,$快捷方式不可用,并且使用了更长的jQuery,即
This is a syntax issue, the jQuery library included with WordPress loads in "no conflict" mode. This is to prevent compatibility problems with other javascript libraries that WordPress can load. In "no-confict" mode, the $ shortcut is not available and the longer jQuery is used, i.e.
jQuery(document).ready(function ($) {
通过在函数调用后的圆括号中包含$,您可以在代码块内使用此快捷方式.
By including the $ in parenthesis after the function call you can then use this shortcut within the code block.
有关完整详细信息,请参见 WordPress Codex
For full details see WordPress Codex
这篇关于jQuery Uncaught TypeError:对象[object Window]的属性'$'不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!