2015-09-21 3 views
0
$('.cp-play').one("click", function(){ 
//Code stuff 
} 

У меня есть несколько элементов класса .cp-play. Вместо того, чтобы иметь одно() событие обработчика щелчка для каждого элемента, я хочу иметь его для всего класса. Например. Пользователь нажимает на один из .cp-play, и даже если он нажимает на другой, с тем же именем класса, он не срабатывает.JQuery .One() для всего класса

ответ

0

Использование .off в обработчике:

$('.cp-play').on('click', function() { 
    $('.cp-play').off('click'); 
    // Code stuff 
}); 

Если у вас есть несколько обработчиков кликов и просто хотите отключить один из них, использовать именованный функцию, так что вы можете обратиться к нему в .off() вызова

function cp_play_click() { 
    $('.cp-play').off('click', cp_play_click); 
    // code stuff 
}); 
$('.cp-play').on('click', cp_play_click); 
+0

Это работает, но у меня есть другие функции $ ('. Cp-play'). Нажмите на функции, которые перестали работать сейчас, потому что они не привязали всех обработчиков. Любой способ просто отвязать только эту конкретную функцию? –

+0

Я обновил ответ, чтобы показать, как вы можете отвязать только один обработчик, используя именованную функцию. – Barmar

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