簡體   English   中英

如何解決Prototype和DataPicker或Tooltip之間的jQuery沖突?

[英]How to solve jQuery conflict between Prototype and DataPicker or Tooltip?

我的后端應用程序有問題。 我的表單中有數據字段,為此我正在使用插件jQuery DataPicker。 起初它工作正常-當我單擊字段日歷框時彈出。 問題是當我實際選擇任何日期時,日歷和日期字段會消失。

我在開發人員工具(或Firebug)中檢查了此輸入,然后注意到樣式“顯示:無”已添加到我的輸入中。

我的代碼如下所示:

的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>

后來:

...
<div class="input-group date" style="display: none;">
...

jQuery代碼如下所示:

jQuery的

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;
   }
}

我的DataPicker工作正常。 我無法刪除此方法,因為頁面上的其他功能不起作用。

ToolTip也存在類似問題。 當我將鼠標懸停在提示圖標上時,將出現“工具提示”框,並且可以正確看到該消息。 但是,當我將光標移開時,工具提示和相關對象(再次設置為“顯示:無”樣式)都將移開。

我的頁面上有jQuery.noConflict,它不能解決此問題。 我怎么解決這個問題? 請幫我 :)

510行的datpicker javascript文件中

this._trigger('hide');

在此方法內部,它試圖觸發jQuery事件,因為jQuery處理事件和自定義事件的方式是,它將查看DOM對象上定義的方法,然后轉到本機事件,然后進入自定義事件(我認為),因此它正在找到將樣式設置為display:noneElement#hide()方法display:none

所以2個解決方案

  1. 評論那條線
  2. 如果使用的是hide事件,則將該事件重命名為其他名稱。 我喜歡為事件命名,例如datepicker:hide

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM