mootools formcheck插件和jquery冲突

时间:2012-01-16 18:39:52

标签: jquery mootools validation

我在页面上都有mootools和jquery。但是当在页面上调用jquery时,mootools插件(formcheck)不起作用。 firebug在控制台中出现此错误:

this.form.getProperty is not a function at line 314 of formcheck.js

以下是该行的代码:

this.form.setProperty('action',
  this.options.submitAction || this.form.getProperty('action') || 'post');

我不明白问题是什么。 你能帮助我吗?

3 个答案:

答案 0 :(得分:3)

之前我遇到过类似的问题,我通过将jQuery代码中的$替换为单词jQuery来修复它

例如:

$("div.menu").show();

将是:

jQuery("div.menu").show();

答案 1 :(得分:2)

如果问题是jQuery,请尝试使用名为 noConflict()的内置功能。<​​/ p>

您可以这样称呼它:

jQuery.noConflict();

然后你可以像这样包装原始的$(...)代码:

(function($) {

original $(...) code    

})(jQuery);

答案 2 :(得分:1)

这也是mootools观点的答案。

可能会更进一步,比如在你的初始化方法中,你有类似的东西:

this.form = $(element); 

由于jquery没有返回实际元素而是返回一个包装元素,因为jquery没有setProperty方法,所以它会失败。用document.id替换mootools类中$()的所有提及,或者将它放在一个隐式设置它的闭包中。

(function($) {

// class with reliance on $ here


})(document.id);
自从版本1.2.2或1.2.3以来,mootools已经有了一个document.id后备,不记得了。实际上,从该版本开始,如果已经设置,它将不会重新定义$,并且只依赖于document.id来工作。

因为你在课堂上使用了setProperty,所​​以我认为你可能正在使用mootools 1.1x - 在这种情况下,没有后备可用,你在jquery方面遇到了noConflict。 / p>