我正在使用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');
- });
- });