Javascript重复事件

时间:2013-05-16 19:20:59

标签: javascript jquery

如果焦点在于输入只有一次它起作用,但如果更多则附加事件开始工作的次数与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();

        });
    });

2 个答案:

答案 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();


    });