8

選択したオプションが変更されなかった場合でも、選択の折りたたみイベントを処理したり、変更イベントをトリガーしたりするにはどうすればよいですか?

選択したオプションが同じ場合でもマスコットが移動する検索エンジン用にこれを用意する必要があります。検索エンジンはこのページにあります:http://www.marocpneus.com

たとえば、先に進んで最初に選択した「Type devéhicule」をクリックし、すでに選択されている「Tourisme」を選択した場合、キャラクターは2番目の選択に移動しません。ただし、「Tourisme」を他の値の1つに変更すると、文字は実際に従来のjQuery変更イベントを使用して移動します。

4

1 に答える 1

12

わかりました、いくつかの調査の結果、ブラウザの非互換性のために select option clik を起動できないようです (この SO の質問を見てください: Option node に接続されたイベントが起動されていません)

...しかし、クリックをシミュレートして回避策を作ることができます、XD、ここにフィドルがあります:http://jsfiddle.net/H9gg5/3

JS

$('select.click_option').click(function() {
    if ( $(this).data('clicks') == 1 ) {
        // Trigger here your function:    
        console.log('Selected Option: ' + $(this).val() );
        $(this).data('clicks', 0);
    } else {
        console.log('first click');
        $(this).data('clicks', 1);
    }
});

$('select.click_option').focusout( function() {
    $(this).data('clicks', 0);
});

HTML

<select class="click_option">
      <option value="1"> Selected 1 </option>
      <option value="2"> Selected 2 </option>
</select>

それは何をするためのものか?オプションを 2 回クリックしたため、オプション (同じオプションであっても) を選択したことがわかります。そのため、クリック数を数えて、前のクリックの後にそれがトリガーされたら、XD をトリガーします。このコードは、フォーカスの喪失も処理します。これは、選択範囲外をクリックすると、クリック数 = 1 で閉じ、リセットする必要があるためです。

ユーザーが必要な選択をクリックしたときにのみ関数をトリガーするために、選択にクラスを追加しました。

それが役に立てば幸いです、よろしく!

于 2014-01-26T10:30:06.167 に答える