jQuery 动画不起作用,而其他一切都起作用
jQuery animate does not work while everything else does
任何人都可以告诉我如何调试 jQuery 一般 and/or 这个问题吗?
问题:
jQuery 方法 animate()
行为异常。
该方法是在onclick
方法中添加了一个HTML element
,生成javascript
这个:
try{
$(element).animate({
width : '300px'
});
}catch(e){
console.log(e);
}
Returns 没有错误,但动画效果不起作用。
但是,这有效:
try{
$(element).animate({
width : '300px'
});
$(element).css('background','pink');
}catch(e){
console.log(e);
}
上下文:
var onclick = function(){
var element = this;
$(element).css('background','pink');
try{
$(element).animate({
width : '300px'
});
}catch(e){
console.log(e);
}
}
var elem = document.create('div');
element.addEventListener('click',onclick,false);
其实事情有点复杂,我简化一下把问题说清楚
我知道 jQuery 正在工作,因为 $(element).css('background','pink')
已正确执行。
一切都正确地注入到 head 上下文中:
如您所见,我添加了 jQuery-UI
以防万一...
我应该提一下,几天前当我第一次注意到这个问题时,我并没有像这样注入东西。我在我的模板中使用 eval
jquery-1.11.2.min.class.js
的内容(这不是正确的做法,我同意,但那是草稿)并且我没有使用 jQuery-UI。而此时,try/catch
捕获到这个错误:
jquery Uncaught TypeError: (ec[b] || []).concat is not a function
而且我也已经能够使用 $(element).css('background','pink');
我还应该提一下,我最常使用纯 Javascript 而很少使用 jQuery代码,但从现在开始我需要的每个 $
功能都正常工作。
我试过的:
我在 SO 上发现了一些类似的问题,但没有适合我的问题的解决方案。例如,添加 $(document).ready
对我没有帮助。
var onclick = function(){
var element = this;
$(document).ready(function () {
$(element).css('background','pink');
try{
$(element).animate({
width : '300px'
});
}catch(e){
console.log(e);
}
});
}
我在 Google 中没有找到太多相关内容,看来这不是公共问题。但是,我对 jQuery 了解了很多,即 concat
用于 join two arrays
。
但是,即使有no more error catched
.
,我也卡住了,遇到的困难也一直在
我终于确定出了什么问题,至少表面上是这样。
我的问题是我向 Object 添加了 2 个原型。
而 jQuery,内部可能有点乱,根本不喜欢它。
因此,删除添加到 Object 的每个自定义原型就足以让 jQuery 再次工作。
道德:如果您打算使用 jQuery.
,请不要在 Object 上使用自定义方法
任何人都可以告诉我如何调试 jQuery 一般 and/or 这个问题吗?
问题:
jQuery 方法 animate()
行为异常。
该方法是在onclick
方法中添加了一个HTML element
,生成javascript
这个:
try{
$(element).animate({
width : '300px'
});
}catch(e){
console.log(e);
}
Returns 没有错误,但动画效果不起作用。 但是,这有效:
try{
$(element).animate({
width : '300px'
});
$(element).css('background','pink');
}catch(e){
console.log(e);
}
上下文:
var onclick = function(){
var element = this;
$(element).css('background','pink');
try{
$(element).animate({
width : '300px'
});
}catch(e){
console.log(e);
}
}
var elem = document.create('div');
element.addEventListener('click',onclick,false);
其实事情有点复杂,我简化一下把问题说清楚
我知道 jQuery 正在工作,因为 $(element).css('background','pink')
已正确执行。
一切都正确地注入到 head 上下文中:
如您所见,我添加了 jQuery-UI
以防万一...
我应该提一下,几天前当我第一次注意到这个问题时,我并没有像这样注入东西。我在我的模板中使用 eval
jquery-1.11.2.min.class.js
的内容(这不是正确的做法,我同意,但那是草稿)并且我没有使用 jQuery-UI。而此时,try/catch
捕获到这个错误:
jquery Uncaught TypeError: (ec[b] || []).concat is not a function
而且我也已经能够使用 $(element).css('background','pink');
我还应该提一下,我最常使用纯 Javascript 而很少使用 jQuery代码,但从现在开始我需要的每个 $
功能都正常工作。
我试过的:
我在 SO 上发现了一些类似的问题,但没有适合我的问题的解决方案。例如,添加 $(document).ready
对我没有帮助。
var onclick = function(){
var element = this;
$(document).ready(function () {
$(element).css('background','pink');
try{
$(element).animate({
width : '300px'
});
}catch(e){
console.log(e);
}
});
}
我在 Google 中没有找到太多相关内容,看来这不是公共问题。但是,我对 jQuery 了解了很多,即 concat
用于 join two arrays
。
但是,即使有no more error catched
.
我终于确定出了什么问题,至少表面上是这样。
我的问题是我向 Object 添加了 2 个原型。 而 jQuery,内部可能有点乱,根本不喜欢它。 因此,删除添加到 Object 的每个自定义原型就足以让 jQuery 再次工作。
道德:如果您打算使用 jQuery.
,请不要在 Object 上使用自定义方法