小编Jar*_*ets的帖子

Blur()事件未在webkit浏览器中为选择表单触发

我有一个简单的<select>元素,其中包含以下几个<option>元素:

<select id="dollarAmount">
    <option>select dollar amount</option>
    <option>$5</option>
    <option>$10</option>
    <option>$15</option>
    <option>$20</option>
</select>
Run Code Online (Sandbox Code Playgroud)

<select>只有当用户将鼠标悬停在页面上的另一个元素上时,才会显示此表单:

$("#parentDiv").mouseenter(function(){  
    $("#selectFormDiv").show();  //dollarAmount contained in this div
});
Run Code Online (Sandbox Code Playgroud)

在触发mouseleave事件时parentDiv,我确保表单模糊,以便选项不会保持展开状态.一旦模糊,我可以安全地隐藏包含,<div id="selectFormDiv">以便表格及其容器正确隐藏.

$("#parentDiv").mouseleave(function(){  
    $("#dollarAmount").blur();
    $("#selectFormDiv").hide();
});
Run Code Online (Sandbox Code Playgroud)

我的问题是:这适用于IE8和Firefox 5.1,但不适用于Chrome 12.0或Safari 5.1.我已经检测到浏览器是否是一个webkit并使用不同的命令进行测试,它似乎blur()不会导致<select>表单崩溃(正确的术语?试图隐藏掉落的选项).上面的代码不会隐藏选项,如果他们在离开时扩展parentDiv.触发hide()表单上的事件会隐藏Chrome中的选项(在Opera中仍然没有运气),但当然也会导致整个表单隐藏:

$("#parentDiv").mouseleave(function(){
    if($.browser.webkit) {
        $("#dollarAmount").hide();
        $("#selectFormDiv").hide();
    }
    else {
        $("#dollarAmount").blur();     //blur only triggers for non webkits?
        $("#selectFormDiv").hide();
    }
});
Run Code Online (Sandbox Code Playgroud)

我试过几个其他事件/方法,包括触发document.mouseupmouseleave触发blur().我试图使用focusout,changeclick事件来折叠选择表单,但没有成功. …

html javascript jquery webkit

5
推荐指数
1
解决办法
3612
查看次数

标签 统计

html ×1

javascript ×1

jquery ×1

webkit ×1