список выборки изменил, на лету не запускает onChange () для нового первого элемента

В коде ниже, я использую jQuery 1.4.1 для изменения опций в списке выборки, когда пользователь нажимает на список (заменяющий единственный Старый объект тремя Новыми объектами). При выборе или Новых 2 или Новых 3 правильно огней изменение () метод (и шоу предупреждение), но выборе "Нового 1" не делает. Что я пропускаю?Спасибо.

<html>
<head>
<script type="text/javascript" src="js/jquery-1.4.1.min.js"></script>
<script>
$(document).ready(function() {
   $("#dropdown").mousedown(function() {
      $(this).empty();
      $(this).append($("<option></option>").attr("value",100).text("New 1")); 
      $(this).append($("<option></option>").attr("value",200).text("New 2"));  
      $(this).append($("<option></option>").attr("value",300).text("New 3"));  
   });        
   $("#dropdown").change(function() {
      alert($(this).val());
   });        
});
</script>
<body>
<select id="dropdown"><option value="1">Old 1</option></select>
1
задан staremperor 24 April 2010 в 22:03
поделиться

3 ответа

Потому что New1 выбран по умолчанию. Если вы выберете выбранный вариант, который не считается изменением.

2
ответ дан 3 September 2019 в 01:02
поделиться

при событии mousedown вы фактически регенерируете параметры, поэтому выбирается первый дочерний элемент. вместо этого вы можете попробовать добавить пустой параметр по умолчанию, выбранный следующим образом:

$(this).append($("<option></option>").attr("value",'').text("Select"));
$(this).append($("<option></option>").attr("value",100).text("New 1")); 
$(this).append($("<option></option>").attr("value",200).text("New 2"));
......
0
ответ дан 3 September 2019 в 01:02
поделиться

Попробуйте следующее:

   $("#dropdown").live('change',function() {
      alert($(this).val());
   });     
0
ответ дан 3 September 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: