0

そのため、要素内で jQuery の click() を使用すると不具合があるように見えることに気付きました<div style="display: none;"></div>

これを機能させることは可能ですか?ここでテストしましたが、うまくいくようです。 http://jsfiddle.net/FBYhe/

jQuery UI -> ComboBox ウィジェットを使用しています。

これが私の現在のコードです。

    <select name="labels" id="labelsList">
        <option>Filter By Label</option>
        <option selected>Show All</option>
        <option class="ClickMe">Filter By Label</option>
    </select>
    <script>
        $(document).ready(function(){
            $(".ClickMe").click(function() {
                alert('tets');
            });
        });
    </script>

したがって、これでアラートがゼロになります。理由はわかりませんが、Display:None に関係していると思います。

どんな助けでも大歓迎です!

4

3 に答える 3

0

jQuery UIコンボボックス自動入力ウィジェットを使用している場合は、これをonclickで機能させようとしています。

<li class="ui-menu-item" role="menuitem">
  <a class="ui-corner-all" tabindex="-1">MENU ITEM</a>
</li>

それはあなたの投稿のhtmlと同じではありません。

にバインドする必要があります

$( "。ui-menu-item");

jQueryUIウィジェットをクリックして何かを実行したい場合

またはこれをハックする

$.widget( "ui.combobox", {
.
.
.
    .click(function() {
      // close if already visible
      if ( input.autocomplete( "widget" ).is( ":visible" ) ) {

        // here I guess you want your thing
        // 
        input.autocomplete( "close" );
        return;
      }

      // work around a bug (likely same cause as #5265)
      $( this ).blur();

      // pass empty string as value to search for, displaying all results
      input.autocomplete( "search", "" );
      input.focus();
    });
于 2012-05-25T07:36:49.267 に答える
0

特定のオプションが選択されたときにスクリプトを実行する場合は、値を取得して、必要なものを確認する必要があります。

$('#labelsList).click(function() {
   if($(this).val == 'somevalue'){
      alert("I have selected the correct option");
   }
});
于 2012-05-25T07:39:34.633 に答える
0

あなたのコードは IE や Chrome では動作しません。どちらも option 要素に onClick イベントを実装していないからです。たとえば、次のように onchange イベントを追加できます。

<select name="labels" id="labelsList" onchange="test_click(this)">
     <option>Filter By Label</option>
     <option selected>Show All</option>
     <option class="ClickMe">Filter By Label</option>
</select>

<script>
function test_click(obj)
{
    if ($(obj[obj.selectedIndex]).hasClass("ClickMe"))
        alert("clicked!");
}
</script>

これにより、「ClickMe」クラスの要素をクリックするとアラートが発生します。jQuery の bind 変更を使用して、この動作を任意の選択に割り当てることもできます (その場合、関数は引数 obj を持たず、関数本体で obj の代わりに「this」を使用することで少し異なります)。

お役に立てれば

于 2012-05-25T07:34:06.553 に答える