2016-01-21 89 views
0

在下拉菜單中通過AJAX更改動態添加的對象時,可以添加或刪除類。如果只有一個對象存在,代碼就可以工作,但由於某種原因,不止一個對象會阻止它工作。jquery事件綁定不適用於多個動態對象

$('.product_options_container').on('change', '.product_preset_dropdown', function() { 
    var conceptName = $(this).closest('.product_option_hidden').children('.product_preset_dropdown').find(":selected").text(); 
    if(conceptName != 'custom'){ 
     $(this).closest('.product_option_hidden').children('.product_encapsulation').addClass("hidden"); 
    } 
    else if(conceptName == 'custom'){ 
     $(this).closest('.product_option_hidden').children('.product_encapsulation').removeClass("hidden"); 
    } 
}); 

標記

// DIV CONTAINER AJAX IS LOADED TO 
<div id="dynamicInputs" class="dynamicInputs"></div> 

// AJAX FILE LOADED 
<div class='product_option_hidden'> 
    <div class="product_preset_inner"> 
     <div class="product_preset_inner_border"> 
      <div class="product_preset_dropdown_container"> 
       <select class="product_preset_dropdown"> 
        <option value="custom">custom</option> 
        <option value="preset">preset</option> 
        <option value="preset2">preset 2</option> 
       </select> 
      </div> 
     </div> 
    </div> 
    <div class="product_encapsulation"> 
     //other content here 
    </div> 
</div> 
+1

con中的輸出是什麼?唯一? – catzilla

+0

以爲我已經檢查了控制檯,看是否有錯誤。感謝您讓我再次檢查。我在下面回答 – Paddy

回答

0

問題是

var conceptName = $(this).closest('.product_option_hidden').children('.product_preset_dropdown').find(":selected").text(); 

被增加一個額外的自定義串輸出爲每個附加的對象添加,改變爲下面的工作

var conceptName = $(this).closest('.product_preset_dropdown').find(":selected").text(); 
相關問題