4

重複の可能性:
JQuery 関数は Mac 上の Chrome では機能しませんが、Win 7 およびその他すべてのブラウザー上の Chrome では機能します

私は選択 - オプションリストを持っています

<div class="social-option">
    <select name="hex_theme_options[social-service-1]">
        <option selected="selected" value="facebook">facebook</option>
        <option value="0"></option>
        <option value="twitter">twitter</option>
        <option value="linkedin">linkedin</option>
        <option value="e-mail">e-mail</option>
        <option value="phone">phone</option>
        <option value="instagram">instagram</option>
        <option value="flickr">flickr</option>
        <option value="dribbble">dribbble</option>
        <option value="skype">skype</option>
        <option value="picasa">picasa</option>
        <option value="google-plus">google-plus</option>
        <option value="forrst">forrst</option>
    </select>
</div>

これが PC では機能するのに、Mac では機能しないのはなぜですか?

$('.social-option select').on('click', function () {
    alert('bla');
});

http://jsfiddle.net/4BBcZ/

UPDATEではなく、クリックイベントで
使用する必要があります

4

2 に答える 2

8

change代わりにイベントを使用します。

$('.social-option select').on('change', function () {
    alert('bla');
});

ドキュメントから:

change イベントは、値が変更されたときに要素に送信されます。このイベントは、要素、ボックス、および要素に限定されます。選択ボックス、チェックボックス、およびラジオ ボタンの場合、ユーザーがマウスで選択を行うとすぐにイベントが発生しますが、他の要素タイプの場合、要素がフォーカスを失うまでイベントは延期されます。

IIRC、clickイベント<option>は Firefox では機能しますが、Chrome では機能しません。最高で最もサポートされているイベントはchange.

選択したオプションの値を取得するには、.val()他の入力と同じように使用します。

$('.social-option select').on('change', function () {
    alert($(this).val());
});
于 2012-07-08T15:53:37.663 に答える
4

「クリック」イベントの代わりに、次のように「変更」を使用します。

 $(".social-option select").change(function(){
       alert('bla');    
    });

スタックオーバーフロー リファレンス

于 2012-07-08T15:52:29.600 に答える