2014-01-22 160 views
0

此代碼顯示了一個警報,並且選擇了該選項並且效果很好!有什麼區別? +選擇+選項+ jQuery

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('select#combo').on('change', function() { 
      var valor = $(this).val(); 
      alert(valor); 
     }); 
    }); 
</script> 

<select id="combo"> 
    <option value="1">Hola</option> 
    <option value="2">Hola2</option> 
    <option value="3">Hola3</option> 
</select> 

下一個代碼在頁面上使用jQuery打印「select」。
所以,問題是:如果下一個代碼是相同的,爲什麼這段代碼不顯示警報?

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#result").click(function() { 
      var correos = '<select name="combo" id="combo">'; 
      correos = correos + '<option value="0" selected="selected">Seleccionaalgo</option>'; 
      correos = correos + '<option value="1">Hola</option>'; 
      correos = correos + '<option value="99">Todos</option>'; 
      correos = correos + '</select>'; 
      $("#resultado").html(correos); 
     }); 
     $('select#combo').on('change', function() { 
      var valor = $(this).val(); 
      alert(valor); 
     }); 
    }); 
</script> 

<div id="resultado"></div> 
<div id="result" style="width: 50px; height: 50px; background-color: green;">Click me!</div> 

回答

2

您需要使用event delegation用於動態創建的元素:

$(document).on('change', 'select#combo' , function() { 
    var valor = $(this).val(); 
    alert(valor); 
}); 

順便說一句,id應該是唯一的,你必須使用類代替。

+0

在我的代碼的那一部分,我把這個? – Ivan

+0

@Ivan是的,用上面的代碼 – Felix

+1

tnx代替'$('select#combo')。('change',.......' – Ivan

相關問題