簡體   English   中英

Jquery Chosen正在更新本地選擇框后面的級聯選擇

[英]Jquery Chosen is updating cascading selects on step behind native select boxes

我正在使用通過數據庫填充的4個選擇框中選擇的jquery。

選擇框ID為:#Year_395,#Make_395,#Model_395,#Trim_395。

我使用以下腳本“級聯”它們,以便第二個選擇框的選項取決於第一個選擇的選項,第三個的選項取決於第二個選擇等。

function cascadeSelect(parent, child){
    var childOptions = child.find('option:not(.static)');
    child.data('options',childOptions);

    parent.change(function(){
        var parentValue = (this.value).replace(" ", "_");
        childOptions.remove();
        child
             .append(child.data('options').filter('.sub_' + parentValue))
             .change();
    })

    childOptions.not('.static, .sub_' + parent.val()).remove();
}

本機選擇框正確級聯。 問題在於,當我實現jQuery Chosen時,新的選擇框會更新,但是在本機框后面一步。 現在我使用下面的代碼來更新jQuery Chosen的替換選擇框顯示的選項。 這應該會導致jQuery Chosen在選擇#Model_395的選項后立即更新#Trim_395。

$("#Model_395").chosen().change(function(){
    $("#Trim_395").trigger('chosen:updated');
});

以下是構建站點的鏈接

您將看到,如果選擇年份,品牌和型號,則不會有任何修剪選項,就像您尚未選擇模型一樣。 如果您隨后選擇其他型號,將顯示您選擇的第一個型號的選項。 選擇第三個模型將顯示第二個模型的修剪選項等。

我自己想出來了。 在隱藏的選擇框有時間更新之前,jQuery Chosen正在更新:

 $("#Model_395").change(function(){
 wto = setTimeout(function() {
     $("#Trim_395").trigger('chosen:updated');
}, 500);
 });

解決了這個問題。 感謝任何看過的人:)

暫無
暫無

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

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