如何在具有相同值的下拉菜单上触发 jQuery 更改事件

新手上路,请多包涵

即使用户选择相同的值,我如何每次都触发 jQuery 更改事件?我需要刷新效果,例如,如果用户选择 Lawyer 并发出警报 hello 然后用户再次从下拉列表中选择 Lawyer 并且它应该发出警报 hello 。我怎样才能实现它?以下是代码。

查询

function filterPullDown () {
    alert('hello');
}
$(".businessTypePullDown").change(filterPullDown);

HTML

 <select class="businessTypePullDown">
    <option value="" disabled selected>Business Type</option>
    <option value="1">General</option>
    <option value="2">Lawyer</option>
    <option value="3">Software Development</option>
    <option value="4">Auto-repair</option>
</select>

链接到小提琴

原文由 Superman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 318
2 个回答

这应该工作。它是标志和点击事件的组合。当你点击一个选项时,它总是会被触发。

 <select class="businessTypePullDown">
    <option value="" disabled selected>Business Type</option>
    <option value="1">General</option>
    <option value="2">Lawyer</option>
    <option value="3">Software Development</option>
    <option value="4">Auto-repair</option>
</select>

 (function () {

  var filterPullDown = function() {
         alert('clicked');
    }
    var flag = false;
    $(".businessTypePullDown").click(function () {
        if (flag) {
            filterPullDown()
        }
        flag = !flag;
    });

    $(".businessTypePullDown").focusout(function () {
        flag = false;
    });
}());

原文由 skay- 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为@MrUpsidown 只是在不知情的情况下回答了这个问题!为什么不在 option 元素本身而不是外部 select 元素属性上添加事件处理程序。

回到超人的代码,使用这个:

 $(".businessTypePullDown option").on("click", filterPullDown);

这将每次调用“filterPullDown”函数,无论是否选择了相同的值。

原文由 z1md4wg 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题