11

我有一個奇怪的問題,使用bootstrap-sassbootstrap-multiselect。 好像引導,薩斯事件處理阻塞下拉等多選處理bootstrap-sass多選事件衝突

這包通過亭子安裝:

'bootstrap-sass-official#3.3.1', 
'bootstrap-multiselect' 

應用程序建立在Django和蟒蛇,所以模板結合腳本的頁面:

{% compress js %} 
    <script src="{% static 'jquery/dist/jquery.js' %}"></script> 
    <script src="{% static 'bootstrap-sass/assets/javascripts/bootstrap.js' %}"></script> 
{% endcompress %} 

使用特定的頁面上綁定腳本:

{% block extrajs %} 
    <script src="{{ STATIC_URL }}bower_components/bootstrap-multiselect/dist/js/bootstrap-multiselect.js" 
      type="text/javascript" charset="utf-8"></script> 
{% endblock %} 

crearing多選控制:

$('.multiselect').multiselect() 

沒什麼特別的。但是當我嘗試在UI上使用多選控件時,它不會下降。控制檯沒有錯誤。

經過一些通過我想通代碼衝浪,有一些事件處理程序防止多選處理程序從執行:

// APPLY TO STANDARD DROPDOWN ELEMENTS 
    // =================================== 

    $(document) 
    .on('click.bs.dropdown.data-api', clearMenus) 
    .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) 
    .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) 
    .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) 
    .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown) 
    .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown) 

所以,棘手的解決辦法是首先關閉標準的事件處理程序的頁面,其中上使用的多選:

$(document) 
    .off('click.bs.dropdown.data-api') 
    .off('keydown.bs.dropdown.data-api') 

這看起來有點冒失,而不是對我最好的解決方案。

是否有本地方法來解決這個衝突?感謝名單。

+0

你好,嘗試在你所有的mutliselect中使用唯一的ID而不是類名。 – claudios

回答

6

認爲Bootstrap鏈接兩次到頁面。顯式地如上所示,並通過stepoftheweb.com主題捆綁腳本隱式通過(我忽略了這個問題的細節,我認爲沒關係)

所以,我刪除了第一個腳本鏈接到頁面,現在它工作正常。

+0

嗨,你怎麼弄出Bootstrap鏈接兩次?他們在哪? – RockU