Javascript 使用jQuery抑制默认下拉功能

Javascript 使用jQuery抑制默认下拉功能,javascript,jquery,drop-down-menu,Javascript,Jquery,Drop Down Menu,我原以为这样行得通,但不行,我还缺什么 html 选项列表 jQuery <script type="text/javascript"> $("#TaskId").click( function(e){ e.preventDefault(); }); </script> $(“#TaskId”)。单击(函数(e){ e、 预防默认值(); }); e.preventDefault在单击下拉菜单的上下文时不起作用,请使用以下选项: 代码1: $("#Ta

我原以为这样行得通,但不行,我还缺什么

html


选项列表
jQuery

<script type="text/javascript">
 $("#TaskId").click( function(e){
    e.preventDefault();
 });
</script>

$(“#TaskId”)。单击(函数(e){
e、 预防默认值();
});

e.preventDefault在单击下拉菜单的上下文时不起作用,请使用以下选项:

代码1:

$("#TaskId").mousedown(function(){
   return false;
});
$("#TaskId").mousedown(function(e){
   e.preventDefault();
});
您也可以使用此选项:

代码2:

$("#TaskId").mousedown(function(){
   return false;
});
$("#TaskId").mousedown(function(e){
   e.preventDefault();
});
警告:e.preventDefault()在Firefox和Opera中的事件处理中存在漏洞。

这可能是一种解决您试图实现的目标的方法:

代码3: 只需玩一下:

$("#TaskId").prop('disabled', true);
$("#TaskId").prop('disabled', false);
代码4: 如果不想禁用所有事件处理,请查看以下示例:

代码4的演示:

代码1和代码2的演示:


希望这有帮助:-)

为什么不简单地禁用select字段?它将产生所需的行为,并向用户显示发生了什么。与其安装click侦听器,不如

$("#TaskId").prop("disabled", true);

你的目标是…什么?为什么不干脆删除选项?你想做什么?看下面的讨论:你在使用Firefox吗?你可能根本无法实现这一点,显然这仍然是我通过抢夺用户的点击事件完成的。诀窍是在他们按住鼠标的同时让它工作。很好,但对Firefox不起作用。如上所述,这可能是firefox的一个错误,因此不是您代码的错误。@TravisJ是的,您是对的,看看我可能的解决方案,我编辑了我的文章。@TravisJ我看您不想禁用所有事件处理,也许我的最后一个示例会有所帮助。这主意不错,我喜欢向用户展示发生了什么的想法,因此+1。但是,禁用该属性将很不幸地禁用该元素的所有事件处理,这绝对不是理想的。