1

私の問題: このコードは、Firefox の chrome と safari では機能しますが、IE 8.changeでは機能しません.click。動作していません。anythingSlider は私が使用している jquery ライブラリであり、それが問題ではないことは確かです (ドロップダウンでアイテムを選択してそのスライドに移動するように逆方向に移動すると、ie を含むどこでも機能します。ありがとう。

私のコード:

 $(document).ready(function() {
 $('#skillslist').click(function()
  {var str = $(this).attr('value');
  var pattern = /[0-9]+/g;
  var matches = str.match(pattern);
 var myInteger = parseInt(matches);
 $('#slider').anythingSlider(myInteger);


  });


    });
</script>

 <select name='myList'  id='skillslist'>
 <option>Subscription Days Remaining: <? echo $days ?></option>
 <option id='skill1'>Skill 1: Hand Washing</option>
 <option id='skill2'>Skill 2: Abdominal Thrust on Conscious Resident</option>
 <option id='skill3'>Skill 3: Ambulation using a Gait Belt</option>
 </select>
4

2 に答える 2

2
$('#skillslist').change(function() {
    var str = $(this).val();
    // ...
});

選択ボックスの値は... を使用してクエリする必要があるため、私は常に$(this).attr('value')orを避けようとします。this.valuethis.options[this.selectedIndex].val()

「うまくいかない」と言う前に、まず何がうまくいかないかを説明しalert()myInteger値を入力して他の要因を確実に排除してください。

于 2012-06-03T08:24:50.533 に答える
2

これを試すことができます:

$('#skillslist').on('change', function(){  // change instead of click
  var str = this.value;
  var pattern = /[0-9]+/g;
  var matches = str.match(pattern);
  var myInteger = parseInt(matches);
  $('#slider').anythingSlider(myInteger);


  });
});

ページの読み込み後に DOM に追加を選択した場合は、よくわかりません。

$('body').on('change', '#skillslist', function(){  // change instead of click
  var str = this.value;
  var pattern = /[0-9]+/g;
  var matches = str.match(pattern);
  var myInteger = parseInt(matches);
  $('#slider').anythingSlider(myInteger);


  });
});

NOTE bodyは、セレクトボックスのコンテナに置き換えることができます。

于 2012-06-03T08:09:04.357 に答える