Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2013, 20:17
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Как поставить проверку условия единожды?
Для каждого обработчика происходит одна и та же проверка. Можно ли сделать так, чтобы не писать проверку для каждого события, а написать единожды?
В реальном коде у меня вообще 3 обработчика стоит в методе on(). И для каждого приходится писать эту проверку.
$('p').on({mouseenter:function(){
if($('b').text()) return;
//какой-то код
},mouseleave:function(){
if($('b').text()) return;
//какой-то код
}
});
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2013, 20:31
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

function ff() {
  if($('b').text()) return;
  //какой-то код
}
$('p').on({mouseenter: ff, mouseleave: ff});


так не работает что-ли?
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2013, 20:38
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

А прямо в методе on() сделать нельзя? Что-то вроде этого, только, чтобы работало.
$('p').on(if($('b').text()) return;
{mouseenter:function(){
...
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2013, 20:55
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Dimaz,
Ваши вопросы - для экстрасенсов - выложите минимальный HTML и поясните смысл проверок и событий
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2013, 20:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Dimaz,
Вариант )))
$('p').on("mouseenter mouseleave", function (event) {
    if ($('b').text()) return;
    var eventfunction = {
        mouseenter: function () {
            alert("mouseenter") //какой-то код

        },
        mouseleave: function () {
            alert("mouseleave") //какой-то код

        }
    }
    eventfunction[event.type]()
});
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2013, 21:01
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Сообщение от Deff Посмотреть сообщение
Dimaz,
Ваши вопросы - для экстрасенсов - выложите минимальный HTML и поясните смысл проверок и событий
Зачем? Смысл проверок есть. Вопрос в том, можно ли написать проверку один раз для всех событий. Я даже специально упростил код, чтобы вы не отвлекались на лишние действия в моем коде.
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2013, 21:02
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

ну за 4 года можно было и понять, как работают функции и замыкания

$('p').on(
(function() {
  function ff() {
    if($('b').text()) return;
    //какой-то код
  }
  return {mouseenter: ff, mouseleave: ff};
})()
);
Ответить с цитированием
  #8 (permalink)  
Старый 02.06.2013, 21:23
Профессор
Отправить личное сообщение для Dimaz Посмотреть профиль Найти все сообщения от Dimaz
 
Регистрация: 25.12.2009
Сообщений: 222

Всем спасибо за ответы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать проверку полей на js boris2000 Элементы интерфейса 12 18.11.2014 12:15
Как поставить тайм-аут для выполнения скрипта cln2008 Общие вопросы Javascript 7 23.09.2009 14:57
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как создать проверку вводимого пароля на стойкость, используя API Google. Александр Черепов Элементы интерфейса 4 03.11.2008 02:16
Как поставить картинки в <select> d3 Dolphin Общие вопросы Javascript 8 27.10.2008 18:51