0

我在我的网站上成功使用了一些插件大约 6 个月,突然间我开始收到我的一个脚本的这条消息:“$ 未定义”。

这是有问题的代码行:$.widget("ui.ImageColorPicker", uiImageColorPicker);

我正在使用这个插件和几乎最新的启用 noConflict 的 jQuery:http://github.com/Skarabaeus/ImageColorPicker没有改变任何东西 6 个月(我没有更新 jQuery)。我确信它在 2 周前还可以正常工作,但现在突然坏了。

编辑:错误消失了。我正在删除示例网站。

4

5 回答 5

5

它看起来像一个变量范围问题。

尝试将第一行更改为:

(function($){

最后一行:

})(jQuery);

通过这样做,我们将jQuery对象传递给插件周围的匿名函数,但是通过引用它作为$块内的代码可以使用“普通”jQuery 编写,同时仍然在页面的其余部分保持 noConflict 模式。

于 2012-05-31T11:39:40.700 回答
1

请试试这个

<script type="text/javascript" src="other_lib.js"></script> //In your case try Imagecolorpicker js
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>

参考$.noConflict();

于 2012-05-31T11:33:54.353 回答
0

尝试使用显式jQuery对象而不是它的$别名。
例如:

jQuery.widget("ui.ImageColorPicker", uiImageColorPicker);
于 2012-05-31T11:14:36.417 回答
0

看起来jQuery.Widget是在该页面上定义的。试试那个,而不是$.widget.

于 2012-05-31T11:28:02.083 回答
0

首先,确保包含 jQuery UI。尝试使用jQuery.widget. 如果这不起作用,请使用:

e = jQuery; // you can use anything else than $

现在,你应该输入e.widget("ui.ImageColorPicker", uiImageColorPicker); 而不是你所拥有的。

于 2012-05-31T11:46:16.240 回答