首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery die()不工作

jQuery die()不工作
EN

Stack Overflow用户
提问于 2011-11-07 14:03:53
回答 2查看 2.7K关注 0票数 0

由于我正在创建一个HTA代码,所以我只能使用IE:

我们需要在<select>元素中捕获变更事件,但你猜怎么着,IE不支持该事件。

所以我创造了一种模仿它的方法。使用一个<input type="text">,当它被点击时,显示<select>就在下面。那部分运作得很好。问题是,当用户单击select外部时,我想隐藏select

我试着在body上捕获一个body,它第一次运行良好,但是第二次select被隐藏了。

这里是代码的简化版本:

代码语言:javascript
复制
$('.product').live('click',function(){
    // Show the <select id="select"> code goes here

    // this is the event to close the select
    $('body').die().live('click', function(){ $('#select').fadeOut(250); return;});

    // get the click on the select element
    $('#select').die().live('click',function(){
       // kill the close the select
       // THIS IS THE .die() THAT DOES NOT WORK
       $('body').die();

});

问题,这段代码有什么问题吗?还是有更好的方法来做这件事?记住我被IE困住了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-07 15:17:49

Internet 7和更高版本(可能还有6,因为IE7主要是带有口红的IE6,但我不能轻松地测试) do支持更改事件。这里是一个非常简单的演示程序。

IE确实对事件做了一些奇怪的事情。例如,“更改”不会冒泡(至少来自<select>,也可能来自其他方面),但是jQuery为您提供了修补程序。还有一个经典的问题是复选框和单选按钮,它们在失去焦点之前不会触发“更改”(这使得它基本上无用)。对于这些,我发现“点击”很好。

票数 1
EN

Stack Overflow用户

发布于 2011-11-07 14:07:34

为了使.die()正确运行,与它一起使用的选择器必须与最初与.live()一起使用的选择器完全匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8037511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档