2013-02-17 46 views
0

我有一个问题 - 我的jQuery更改模糊事件只适用于动态创建的列表中的第一个元素。我该如何解决这个问题?jQuery更改模糊事件只适用于列表中的第一个元素

我已创建的元素(以及一个淡化的版本)可以在这里找到:http://jsfiddle.net/kfm5b/2/

jQuery的

$('.roomFac').on("change blur", function() { 
    var park = $("#park2").val(); 
    var lecturestyle = $("#lecture_style2").val(); 
    var roomstructure = $("#room_structure2").val(); 
    var groupsize = $("#groupSize2").val(); 
    var facilities = ""; 
    $('select[name*=roomFac]').each(function() { 
     facilities += $(this).val(); 
     facilities += ","; 
    }); 
    var dataString = 'park=' + park + '&' + 'lecturestyle=' + lecturestyle + '&' + 
     'roomstructure=' + roomstructure + '&' + 'groupsize=' + groupsize + '&' + 
     'facilities=' + facilities; 
    $.ajax({ 
     type: "POST", 
     url: "process_timetableMon2.php", 
     data: dataString, 
     cache: false, 
     success: function (html) { 
      $('#mon').html(html); 
     } 
    }); 
}); 

process_timetableMon2.php

$array = explode(",", $_POST["facilities"]); 

for($i = 0; $i < count($array); $i++){ 
    echo $array[$i].'<br>'; 
} 
+0

如果您已经设置了jsFiddle,请继续添加您正在尝试修复的功能,以演示问题 – Roy 2013-02-17 14:50:34

回答

0

既然选择下拉列表是动态添加的,您需要一个委托事件处理程序:

$(document).on('change blur', '.roomFac', function() { 
    //Your function here 
}); 
相关问题