2012-10-26 76 views
1

我想創建下拉菜單按在txtCols的onkeyup功能像這樣指定的int值所產生的下拉菜單onchange事件:如何處理動態的jQuery

$("#txtCols").keyup(function(){ 
    var $count = $(this).val(); 

    $("#holder").html(''); 

    // define matrix header options available 
    var matrixHeaders = { 
     'TB': 'Text Box', 
     'DD': 'Drop Down', 
     'CL': 'Calendar' 
    } 

    for ($i=0;$i<$count;$i++) 
    { 

     var s = $('<select id="header'+$i+'"/>'); 
     for(var val in matrixHeaders) { 
      $('<option />', {value: val, text: matrixHeaders[val]}).appendTo(s); 
     } 
     s.appendTo('#holder'); 
    } 

}); 

下拉式生成id ='header + i'[增量變量] 現在,在選擇這些下拉列表時,我想觸發一個事件,基本上可以生成文本框,下拉菜單或日曆根據所做的選擇。

我爲它的代碼是這樣的:

$(function(j) { 
    $('#header' + j).change(function() { 
     alert('Got Value'); 
    }); 
}(j)); 

也試過:

$(document).on('change', '#header' + j, function() {   
    alert('hii'); 
}(j)); 

但這一事件是行不通的。

回答

1

試試這個:

第一添加類到您選擇水木清華這樣的:選擇ID = 「頭 '+ $ I +'」 級= 「頭」/

下一個加處理程序:

$(".header").live("change", function() { 
    var id = $(this).attr("id").split("header").join(""); //get i 
    var opt = $("#header" + id + " option:selected").val(); //or whatever you need 
    switch (opt) { 
     case .. 
    } 
}); 
+0

神奇的朋友..它的工作.. Thanx .. –

3

使用的功能有呼籲動態添加元素的處理程序:

$(document).on('change', '#header' + j, function() { 

,或者任何j

$(document).on('change', '[id^="header"]', function() { 

但我寧願使用一個類不是選擇匹配的開始的編號:

$(document).on('change', '.header', function() { 
... 
var s = $('<select class=header id="header'+$i+'"/>'); 
+0

請參閱...我的代碼..我已編輯..是否你是在說什麼?它的下面.. **也試過**標題 –

+0

我建議請..給我完整的腳本..作爲它不工作..在這種方式。 –