有没有人可以给我一些线索,我可以做些什么来调试jQuery一般和/或特别是这个问题?
问题:
jQuery 方法animate()
表现得很奇怪。
该方法已添加到生成的onclick
, javascript 的HTML element
方法中。
这:
try{
$(element).animate({
width : '300px'
});
}catch(e){
console.log(e);
}
不返回任何错误,但动画效果不起作用。 但是,这有效:
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')
已正确执行。
所有内容都被正确地注入到主题背景中:
您可以注意到,我已添加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
,我也被困住了,遇到的困难仍然存在。
答案 0 :(得分:2)
我终于确定了出了什么问题,至少是表面上的。
我的问题来自于我向Object添加了2个原型。 而jQuery,可能在内部有点混乱,根本不喜欢它。 因此,删除添加到Object的每个自定义原型就足以让jQuery再次运行。
道德:如果您计划使用jQuery,请不要在Object上使用自定义方法。