2015-07-04 4 views
-4

В настоящее время я строил app, который использует .on() в jQuery.более эффективный способ использования .on() в jQuery

Что я заметил, я использую метод .on(). настолько, что мне кажется, что мой код начинает становиться очень грязным.

$(document).on('click','.close-comments',function(){ 
shrinkComments(); 
}); 
// end function 

$(document).on('click','.reload',function(){ 
// perform reload 
}); 
// end function 

$(document).on('click','.write-comment',function(){ 
}); 
// end function 

$(document).on('click','#load-more',function(){ 
}); 
// end function 

Что мне интересно, это ... есть более эффективный способ использования метода .on() обрабатывать различные щелчки на вещи, которые могут быть случающихся по всей странице?

Alot контента загружается с помощью ajax, поэтому содержание будет меняться, но им просто ищет более элегантный способ использования этого метода так что мой код является гораздо более компактным и более эффективным

заранее спасибо

+0

Что вы подразумеваете под "эффективным"? Обычно, когда люди используют этот термин, они означают, как быстро выполняется код, но это звучит так, как будто вы можете означать «меньше набрав» или что-то в этом направлении. –

+0

Да, это то, что я имею в виду, более эффективный, чтобы не выписывать. ***. On() так много раз вниз по странице. – user125264

ответ

0
var clickHandlers = { 
    '.close-comments' : function() { 
    shrinkComments(); 
    }, 
    '.reload': function() { 
    // perform reload 
    }, 
    '.write-comment': function() { 
    }, 
    '#load-more': function() { 
    } 
}; 
for (var selector in clickHandlers) { 
    $(document).on('click', selector, clickHandlers[selector]); 
} 

Если вы хотите, чтобы справиться с другими, чем click события, можно добавить еще один слой вашего handler объекта и еще один слой в течение цикла.

Смежные вопросы