我正在使用IE8的下面的占位符代码,但是在下拉登录字段中移动鼠标时,大约70%的时间会丢失焦点(整个下拉登录字段消失);通过调试 – 当我删除这个代码的问题消失了 – 我发现问题的原因是这段代码:
编辑:我发现它不是由任何特定的占位符代码引起的,而是由于某些部分过程引起的,因为我已经尝试了3个独立的占位符插件,并且发生在其中的所有3个;把他们带走,没有问题.
$(document).ready(function() { if ( !("placeholder" in document.createElement("input")) ) { $("input[placeholder],textarea[placeholder]").each(function() { var val = $(this).attr("placeholder"); if ( this.value == "" ) { this.value = val; } $(this).focus(function() { if ( this.value == val ) { this.value = ""; } }).blur(function() { if ( $.trim(this.value) == "" ) { this.value = val; } }) }); // Clear default placeholder values on form submit $('form').submit(function() { $(this).find("input[placeholder],textarea[placeholder]").each(function() { if ( this.value == $(this).attr("placeholder") ) { this.value = ""; } }); }); } });
你可以在这里查看一个例子:http://condorstudios.com/stuff/temp/so/header-sample.php
编辑:不知道如果这将有助于jsfiddle不工作在IE8,我不能测试如果小提琴在IE8中表现不好,但这里是小提琴:http://jsfiddle.net/m8arw/7/
任何方式来解决这个问题?
解决方法
您是否尝试过切换您的活动以显示/隐藏“mouseenter”和“mouseleave”的下拉列表?
在IE上比“焦点”和“模糊”事件更可靠.而且,直接在’dropdown’上绑定事件div比’input’元素更好.
在IE上比“焦点”和“模糊”事件更可靠.而且,直接在’dropdown’上绑定事件div比’input’元素更好.
简而言之,请尝试改变这段代码.
$(function() { var dropdown = $('div.login div.dropdown') .on('mouseenter',function() { dropdown.css('display','block'); }) .on('mouseleave',function() { dropdown.removeAttr('style'); }); });