0

我正在将引导程序用于不同类别的下拉列表。当用户单击列表中的一个类别时,类别选择器(显示在下拉切换中的那个)应该将其标题更改为单击的那个。这是一个例子

它在用户第一次单击项目时起作用。但是,当再次单击列表项时,没有任何反应。似乎 on click 事件只触发一次,尽管我使用了它的委托版本(我需要它,因为 DOM 可能会改变)。

这是下拉列表的 HTML:

<div class="dropdown inline hide" style="display: block;"> 
  <a href="#" data-toggle="dropdown" class="dropdown-toggle">
    <span class="current-category">No Category</span><span class="caret"></span>
  </a>

  <div class="dropdown-menu scroll-pane">
    <ul>
      <li><a class="category-selection" href="#">No Category</a></li>
      <li><a class="category-selection" href="#">Category 1</a></li>
      <li><a class="category-selection" href="#">Category 2</a></li>        
    </ul>
  </div>
</div>

这是javascript:

$("body").on("click", "a.category-selection", function(e) {
  e.preventDefault();

  $(this).closest(".dropdown").find(".current-category").html($(this).html());
  $(this).closest(".dropdown-menu").dropdown('hide');

  return false;
});
4

1 回答 1

1

使用下拉菜单,当您单击打开的文档时,它会自动关闭菜单。使用您提供的 jsfiddle 示例,删除最后两行:

$(this).closest(".dropdown-menu").dropdown('hide');
return false;

允许代码运行多次。删除“return false”只是一个好习惯,因为您已经使用 e.preventDefault(); 否定了单击操作;

于 2013-08-12T20:36:27.163 回答