Jquery验证& Prototypes.js冲突问题?

时间:2010-10-05 21:03:23

标签: jquery prototypejs

http://www.therapistsurvey.com/vignette0/vig01

请注意,一旦您单击“查看父母的响应”,该链接将触发显示div的javascript这将使用以下行完成:

 <%= javascript_include_tag :defaults %>
 <%= link_to_function "Click to See Parents' Response: ", "Element.toggle('response')" %>



 <div id="response" style="display:none">

    //input
    <%= button_to "Next", :action => 'vig02' %>
 </div>

但是,在我的主模板布局中,我包含了以下jquery库:

<script src="http://code.jquery.com/jquery-latest.js"></script>
 <%= javascript_include_tag 'jquery-1.4.2', 'jquery.validate', 'application' %> 

这基本上会禁用该操作。我需要这些库进行jquery验证。

我假设同时使用这两个库存在一些可比性问题。

如果您使用chrome并检查页面元素,您将看到生成错误:

加载页面时:

   Uncaught TypeError: Object #<an Object> has no method 'dispatchEvent' prototype.js:4071

有时候点击链接:

Uncaught TypeError: Cannot read property 'display' of undefined
Element.Methods.visibleprototype.js:1579
Element.Methods.toggleprototype.js:1584
(anonymous function)vig01:59
onclickvig01:60

有关如何解决此问题的任何建议? 谢谢!

3 个答案:

答案 0 :(得分:2)

不仅必须在prototype.js之前加载jQuery为user553463 says(这是通过将<script ... jquery行放在HTML中更高的地方来实现的,以防你不知道),而是在使用jQuery和原型时.js你不能再使用$(selector)语法,而是使用jQuery(selector)代替原型.js也使用$

答案 1 :(得分:1)

刚刚使用了Jquery库:

     <button>Click to See Parents' Response</button>
     <script>
      $("button").click(function () {
         $("#response").toggle();
      });
      </script>

其中#response是您要显示/隐藏的div的ID。

答案 2 :(得分:0)

必须在原型

之前加载jquery