2012-03-26 71 views
2

的作品我有模拟下拉多选框Jquery的模糊不会在Firefox和Chrome的工作,但在IE9

<div> 
    <div class="select"> 
     <span>Select something</span> 
    </div> 
    <div class="no-display select-list"> 
     <div> 
      <label class="unchecked" for="value1"> 
      Value1 
      </label> 
      <label class="unchecked" for="value2"> 
      Value2 
      </label> 
     </div> 
    </div> 
</div> 

和JavaScript这样的HTML代码:

$(".select").live("click", function() { 
    $(".select-list").toggleClass("no-display").focus(); 
    }); 

    $(".select-list").live("blur", function() { 
    $(this).addClass("no-display"); 
    }); 

,但在Firefox和铬,模糊事件不起作用,但在IE9中工作。

我想要点击外部select-list元素,关闭它(意味着使它不可见)。

我使用blur事件后,在该元素上指定focus

你能告诉我这样做的好方法吗?

感谢

+0

只是一个侧面说明:'活的'已经过时了''on'是新的爸爸:P – 2012-03-26 14:14:53

+0

我试过'live'和'on'。同样的问题。 – 2012-03-26 14:15:37

+0

“模糊”事件不会冒泡,因此它不能在委托处理程序中使用。它在IE9中的工作原理可能是因为jQuery明确地“修复”了事件冒泡,并且在这种情况下它修复了一些。 – Pointy 2012-03-26 14:17:27

回答

0

尝试在文档上捕获点击以隐藏菜单。菜单中的点击也会传播到文档中,因此您需要解决此问题(例如,您可以检查event.originalEvent)。

Demo here

+0

不适用于我。您的脚本在我的项目中打开并使“select-list”不可见,因此click事件不起作用。什么都没发生。 – 2012-03-27 05:31:07

1

尝试使用on("focusout",代替on("blur"),,因为blur事件不总是被触发。

+0

我已经尝试过注意事件。没有成功 – 2012-03-26 17:03:30

0

集属性tabindex=-1在选择列表格(阅读 “的tabindex” 属性)。

相关问题