Javascript 如何解决原型和数据采集器或工具提示之间的jQuery冲突?

Javascript 如何解决原型和数据采集器或工具提示之间的jQuery冲突?,javascript,jquery,html,css,prototypejs,Javascript,Jquery,Html,Css,Prototypejs,我的后端应用程序有问题。 我的表单中有数据字段,我使用插件jquerydatapicker。起初,它工作得很好——当我点击field时,日历框弹出。问题是,当我实际选择任何日期时,日历和日期字段将消失 我在开发者工具(或Firebug)中检查了这个输入,我注意到样式“display:none”被添加到了我的输入中 我的代码如下所示: HTML <head> // prototype version 1.7 <script type="text/javascrip

我的后端应用程序有问题。 我的表单中有数据字段,我使用插件jquerydatapicker。起初,它工作得很好——当我点击field时,日历框弹出。问题是,当我实际选择任何日期时,日历和日期字段将消失

我在开发者工具(或Firebug)中检查了这个输入,我注意到样式“display:none”被添加到了我的输入中

我的代码如下所示:

HTML

<head>
    // prototype version 1.7
    <script type="text/javascript" src="js/prototype.js"></script>
    <script src="js/jquery-2.1.1.js"></script>
    <script type="text/javascript">jQuery.noConflict();</script>
    <script src="js/bootstrap-datepicker.js"></script>
</head>
..
<div class="form-group" id="data_1">
    <label>Creation date</label> 
    <div class="input-group date">
        <input type="text" class="form-control valid" name="CreationDate" 
            id="CreationDate" value="29.09.2015" aria-invalid="false">
    </div>
</div>
当我禁用原型时,我的输入效果非常好! 然后我启用了原型,我们又开始了

我试图从原型中删除此方法

Element.Methods = {

   hide: function(element) {
      element = $(element);
      element.style.display = 'none';
      return element;
   }
}
我的数据采集器工作了。我无法删除此方法,因为我页面上的另一个函数无法工作

工具提示也有类似的问题。当我将鼠标悬停在提示图标上时,会出现工具提示框,我可以正确地看到消息。但是当我移开光标时,工具提示和相关对象(再次设置为“显示:无”样式)

我的页面上有jQuery.noConflict,它不能解决这个问题。
我怎样才能解决这个问题?请帮助我:)

中的datpicker javascript文件

在这个方法中,它试图触发一个jQuery事件,因为jQuery处理事件和自定义事件的方式,它将查看DOM对象上定义的方法,然后转到本机事件,然后再转到自定义事件(我认为),因此它正在查找
元素#hide()
将样式设置为显示的方法:无

so 2解决方案

  • 把那一行注释掉
  • 如果正在使用隐藏事件,请将事件重命名为其他名称。我喜欢为事件命名,例如
    datepicker:hide

  • 首先,为什么页面中真的需要2个dom库?然而,正确实施无冲突应该是可行的
    jQuery(document).ready(function ($) {
      ..                     
        $('#data_1 .input-group.date').datepicker({
          todayBtn: "linked",
          keyboardNavigation: false,
          forceParse: false,
          calendarWeeks: true,
          autoclose: true,
          format: "dd.mm.yyyy"
        });
      ..
    });
    
    Element.Methods = {
    
       hide: function(element) {
          element = $(element);
          element.style.display = 'none';
          return element;
       }
    }
    
    this._trigger('hide');