Как поставить проверку условия единожды?
Для каждого обработчика происходит одна и та же проверка. Можно ли сделать так, чтобы не писать проверку для каждого события, а написать единожды?
В реальном коде у меня вообще 3 обработчика стоит в методе on(). И для каждого приходится писать эту проверку. $('p').on({mouseenter:function(){ if($('b').text()) return; //какой-то код },mouseleave:function(){ if($('b').text()) return; //какой-то код } }); |
function ff() { if($('b').text()) return; //какой-то код } $('p').on({mouseenter: ff, mouseleave: ff}); так не работает что-ли? |
А прямо в методе on() сделать нельзя? Что-то вроде этого, только, чтобы работало.
$('p').on(if($('b').text()) return; {mouseenter:function(){ ... |
Dimaz,
Ваши вопросы - для экстрасенсов - выложите минимальный HTML и поясните смысл проверок и событий |
Dimaz,
Вариант ))) $('p').on("mouseenter mouseleave", function (event) { if ($('b').text()) return; var eventfunction = { mouseenter: function () { alert("mouseenter") //какой-то код }, mouseleave: function () { alert("mouseleave") //какой-то код } } eventfunction[event.type]() }); |
Цитата:
|
ну за 4 года можно было и понять, как работают функции и замыкания
$('p').on( (function() { function ff() { if($('b').text()) return; //какой-то код } return {mouseenter: ff, mouseleave: ff}; })() ); |
Всем спасибо за ответы.
|
Часовой пояс GMT +3, время: 01:11. |