1

我需要使用 jQuery 效果来显示或隐藏 div。但是,在执行以下任何方法后,我在控制台中收到错误消息。

动画第一次完成,但动画完成后错误显示在 Safari 控制台中,我无法再次在同一个 div 上应用任何其他 jquery 方法。

我确信这是由于应用程序中的一些其他代码搞砸了,因为以下代码在 jsfiddle 中运行良好。

$('#testDiv').slideDown() 
$('#testDiv').slideUp() 
$('#testDiv').show('slow') 
$('#testDiv').hide('slow') 
$('#testDiv').toggle('slow')

错误

TypeError: 'undefined' is not a function (evaluating 'c.replace(bo,"-$1")')

元素

<div id='testDiv'>text</div>
4

2 回答 2

1

鉴于这些陈述(全部引用):

  • the console doesn't show any error when using $('#testDiv').show() or $('#testDiv').hide()
  • this works fine when checking with a test html page or in jsfiddle.
  • the error occurs only in my project
  • The jquery library file is unaltered

这是的想法:

jQuery show('slow')hide('slow')是在jQuery-1.0中引入的。

可以提供字符串 'fast' 和 'slow' 分别表示 200 和 600 毫秒的持续时间。

在 javascript 中,任何东西(几乎)都可以是变量名:

在此处输入图像描述

在许多情况下,许多库都使用该$符号,它随着 jQuery 的发布而变得更加流行,因此一些库可以使用相同的$.

在 jQuery 中,$符号是jQuery.

我的建议:

确保 jQuery 是要加载的最后一个js 文件,只是为了检查另一个 javascript 文件是否覆盖了 jQuery 的某些功能。如果 jQuery 现在可以工作,它就会被另一个 javascript 文件覆盖。

然后将此作为最终解决方案:

Do $.noConflict();which 将释放$使用它的其他库并开始使用jQuery而不是$.

这个小提琴适用于jquery-1.0.1(找不到1.0),这里是javascript代码:

$(function() {
    $('button#hideSlow').click(function() { $('p#hello').hide('slow'); });
    $('button#showSlow').click(function() { $('p#hello').show('slow'); });
});

资源:

于 2013-06-01T09:11:55.357 回答
0

发现 Json 库搞砸了 jQuery 1.6.4

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

用 JSON.strigify() 替换了 toJSONString() ,这个错误就消失了。

于 2013-06-05T23:56:57.733 回答