2013-08-08 3 views
-1

Я столкнулся с проблемой в jquery У меня есть следующий код, который содержит jQuery-ui-tooltip с пользовательским контентом.количество исполнений увеличивается по мере того, как мышь вводит ту же ссылку снова и снова

$('a').tooltip({ 
     items: "a ,[title]", 
     content: function() { 
     $('a').mouseenter(function(e) {     
      var tempid= $(this).attr('title'); 
      console.log("hhh "+tempid); 
     $.ajax({ 
     type:"POST", 
     url:"page1.php", 
     data:"id=tempid", 
     error:function(){ 
     console.log(event); 
     return "<P>Some Problem occured</p>"; 
     }, 
     success:function(e){ 
       console.log(event); 
     } 

      }); 

      }); 
    return "<p>ha hdj fj fkfod jf kjf ckfd fkj</p>";  

}  
}) 

Теперь проблема заключается в том, что при наведении курсора мыши войти на любую ссылку, то успех часть выполнить 1 раз .when мыши ввести на той же линии, то он выполняется в два раза и так далее ...

Но я хочу он выполняется только один раз, даже если мышь вводится дважды или более.

+2

потому что всякий раз, когда мышь вводит элемент, регистрируется новый обработчик мыши. –

+0

. Что вы пытаетесь достичь здесь? –

+0

У вас может быть переменная запись, если «mouseenter» уже произошло один раз и запустил вызов ajax в выражении if. Вы пробовали это? – Sergio

ответ

1

Используйте глобальную переменную, чтобы проверить, не указана ли мышь.

var hasNotEntered = true; 
$('a').tooltip({ 
items: "a ,[title]", 
content: function() { 
    $('a').mouseenter(function (e) { 
     if (hasNotEntered) { 
      var tempid = $(this).attr('title'); 
      console.log("hhh " + tempid); 
      $.ajax({ 
       type: "POST", 
       url: "page1.php", 
       data: "id=tempid", 
       error: function() { 
        console.log(event); 
        return "<P>Some Problem occured</p>"; 
       }, 
       success: function (e) { 
        console.log(event); 
       } 

      }); 


     } 
    }); 
    return "<p>ha hdj fj fkfod jf kjf ckfd fkj</p>"; 

} 

});

+0

Я пробовал этот, и он решает проблему, если у меня есть только одна ссылка. –

+0

Если есть много ссылок, то он работает только для одной ссылки, а код даже не выполняется для других ссылок. –

+0

Если у вас есть несколько ссылок, которые вы нам не сказали, вы можете использовать массив для отслеживания mouseEnters, которые были срабатывает. –

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