函数运行多次jQuery

时间:2014-02-27 05:52:20

标签: javascript jquery jquery-mobile

以下是附加到keyup事件的函数,此函数在第一个keyup上工作,但在每个后续keyup上,它会多次运行该函数。因此,例如,在第一次keyup事件中,该函数运行1次,在第二次keyup事件上该函数运行2次,在第3次keyup上运行3次,依此类推。

 $(document).on('pageinit','#address_page,#edit_address_page', function(){                                      
         $(".names").focus(function() {                                                                                        
         $(this).on('keyup', function() { 
         // Do Something
});

我已阅读有关此问题的其他帖子,但无法将其应用于我的方案。有人可以就此提出建议。

2 个答案:

答案 0 :(得分:2)

每次元素聚焦时,您都会重新绑定keyup事件。

如果你想这样绑定,你还应该有一个blur事件来取消绑定它。但实际上,你可以安全地绑定keyup而不用担心focus。该元素实际上只会触发keyup focused。{/ p>

$(".names").keyup(function () {
    // do stuff
});

答案 1 :(得分:2)

问题是每次输入聚焦时都会添加一个新的keyup处理程序,所以请尝试(不确定jquery移动语法和pageinit的需要)

$(document).on('pageinit', '#address_page, #edit_address_page', function () {
    $(this).find('.names').on('keyup', function () {
        // Do Something
    });
});