为什么.change()不能用于twitter-bootstrap选择?

时间:2015-08-20 17:16:16

标签: javascript jquery html twitter-bootstrap

我正在尝试在此选择中使用.change(),但我遇到了麻烦。我似乎无法让它发挥作用。

<div class='btn-group twoColumn js-filter'>
    <button class='btn btn-info disabled'>Category</button>
    <a class='btn dropdown-toggle' data-toggle='dropdown' href='#' id='test'>
        <span class='btn_selected_value data-point-category'>
            All
        </span>
        <span class='caret'></span>
    </a>
    <ul class='dropdown-menu'>
        <li class='selectAll'>
            <a class='filter' data-filter='#filterCategoryId' data-value='All' href='#'>All</a>
        </li>
        <li>
            <a class='filter' data-filter='#filterCategoryId' data-value='test333' href='#'>test333</a>
        </li>
    </ul>
</div>

console.log未被解雇:

$('.data-point-category').on('change', function() {
  console.log("what")
});

我应该在哪里放置.data-point-cateogry类,以便通过jQuery使用它?

1 个答案:

答案 0 :(得分:1)

change事件不会在HTML更改时触发。

来自jQuery documentation

  

更改事件在其值更改时发送到元素。这个   事件仅限于<input>元素,<textarea>框和<select>   元素。对于选择框,复选框和单选按钮,事件   当用户使用鼠标进行选择时立即触发,   但对于其他元素类型,事件将延迟到   元素失去焦点。

相反,您需要以下内容:

$('.filter').on('click', function() {
  console.log("what")
});

每次单击下拉选项时,这都会执行您想要的操作,这实际上与更改值相同。