選択上のjQueryの変更イベントは、選択した属性を変更し、他の機能によってトリガされていません

StackOverflow https://stackoverflow.com/questions/2321408

  •  22-09-2019
  •  | 
  •  

質問

HTML

<select multiple="multiple" id="myID" name="myName">
    <option value="blue">blue</option>
    <option value="red">red</option>
    <option value="green">green</option>                
</select>

jQueryの:

$('select')
    .change(function(){
        alert("Change Event Triggered On:" + $(this).attr("value"));
    })
それは、のように、作品です。私は複数選択で項目をクリックすると、アラートがトリガされます。

しかし、私はそうのようにjQueryを介して、選択メニューから要素を「選択」する場合:

$('#myOtherSelector')
    .click(function(){
        var $matchingOption = [goes and selects the specific OPTION to toggle]
        if ($matchingOption.attr("selected")){
            $matchingOption.removeAttr("selected")
        }else{
    $matchingOption.attr("selected","selected");
        }
    })

これは、選択した属性を変更し、視覚的にオプションのリストを更新するにはこのスクリプトは動作しますが、しかし、のonchangeイベントは、そのシナリオでトリガされません。

なぜそれがありますか?

役に立ちましたか?

解決

そのようなコードで要素を変更するだけでイベントハンドラをトリガしません。あなたはしかし、それを自分で行うことができます:

else {
  $matchingOption.attr('selected', 'selected').trigger('change');
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top