jQuery show无效

时间:2017-04-07 01:34:03

标签: jquery

我遇到了以下问题,其中jQuery show()函数没有间歇性地工作。

errorDiv默认为隐藏(在加载期间),当用户点击Enter student按钮时,我想显示错误消息,而在mouseout事件中,我将隐藏errorDiv并显示如果用户再次点击“输入学生”按钮。

当我在show()函数上设置断点时,它可以正常工作。但是,如果我在调试器外测试它,它就无法正常工作。

$(document).ready(function() {

	$('#enter').click(function(){        
    alert('show');
		$('#defaultError').text("Incorrect entry");		
		$('.errorDiv').delay(2000).show();
	});
	
  $('#enter').mouseout(function (){
    alert('hide');
		$('.errorDiv:visible').hide();
	});
	
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row.align-left">
	<div class="small-7">
		<div class="errorDiv">
			<label id="defaultError" name="defaultError" class="error"></label>
		</div>
    <div class="testDiv">
			<label id="test" name="test" class="error">Test Entry</label>
		</div>
	</div>
</div>

<button class="button" role="button" id="enter" name="enter" type="button">
					<i class="fi-plus large">Enter student</i>
</button>

2 个答案:

答案 0 :(得分:0)

我认为这是一个小的语法错误..请用这个替换你的点击功能代码

   $('#enter').click(function(){
     $('#defaultError').text("Incorrect entry");     
     $('.errorDiv').delay(2000).show();
   });

更新了小提琴:Updated Fiddle

答案 1 :(得分:0)

尝试以下代码:

$(document).ready(function() {

$(document).off('click', '#enter').on('click', '#enter', function(){
   $('#defaultError').text("Incorrect entry");     
   $('.errorDiv').delay(2000).show();
});

$(document).off('mouseout', '#enter').on('mouseout', '#enter', function (){
   $('.errorDiv:visible').hide();
});

}