如果焦点在于输入只有一次它起作用,但如果更多则附加事件开始工作的次数与eliment焦点一样多。如何使click事件只执行一次?以下是代码。
$('.menuName').focusin(function(){
$(this).parent().append('<div class="cleartext" style="position: absolute;right: 0px;top: 0px;height: 38px;width:32px;z-index: 999;"><i class="icon-remove-circle"></i></div>');
inputclr = $(this);
intutval = $(inputclr).val();
$(document).on('click', '.cleartext', function() {
$('.menuName').placeholder();
$(inputclr).attr('placeholder',intutval);
$('.pinch_text').html('click');
$(inputclr).val('').focus();
});
});
答案 0 :(得分:1)
您应该使用off函数删除所有侦听器:
$(document).off('click','.cleartext').on('click', '.cleartext', function() {
$('.menuName').placeholder();
$(inputclr).attr('placeholder',intutval);
$('.pinch_text').html('click');
$(inputclr).val('').focus();
});
答案 1 :(得分:1)
将您的代码置于焦点事件之外
$(document).on('click', '.cleartext', function() {
$('.menuName').placeholder();
$(inputclr).attr('placeholder',intutval);
$('.pinch_text').html('click');
$(inputclr).val('').focus();
});
var inputclr , intutval ;
$('.menuName').focusin(function(){
$(this).parent().append('<div class="cleartext" style="position: absolute;right: 0px;top: 0px;height: 38px;width:32px;z-index: 999;"><i class="icon-remove-circle"></i></div>');
inputclr = $(this);
intutval = $(inputclr).val();
});