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

您的代码无法在 IE 或 Chrome 上运行,因为它们都没有通过选项元素实现 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 的绑定更改将此行为分配给您想要的任何选择(在这种情况下,函数会有所不同,没有参数 obj,并且在函数体中使用“this”而不是 obj)。

希望这可以帮助

于 2012-05-25T07:34:06.553 回答
0

如果您使用的是 jQuery UI 组合框自动填充小部件,您正试图让它在点击时工作:

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

这与您帖子中的html不同。

您将需要绑定到

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

如果你想在 jQuery UI 小部件上执行某些操作

或者破解这个

$.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 回答