微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery警报多次

如何解决jQuery警报多次

| 为什么以下代码导致jquery发出3次警报?
.note_text
.note_content
内的一个类。
   $(\'.note_content\').click(function()  {
      var note_text = $(this).find(\".note_text\");
      $(note_text).focus();

      // save its contents:
      var original_text = note_text.html(); 

      $(note_text).blur(function() {
         if (note_text.html() !== original_text)
         {
            alert(\'Not the same\');
         }   
      });

   });
当外部div突出显示时,我希望内部div(包含文本)被关注。     

解决方法

        
$(note_text).blur(function() {
该行绑定了一个事件处理程序。每当元素模糊时,该处理程序就会运行。每次触发ѭ1上的单击处理程序时,您都会分配一个新的处理程序,因此您将有多个警报。 解决此问题的方法是将数据存储在元素上,而不是存储在闭包中。
$(\'.note_content\').click(function()  {
    $(this).find(\'.note_text\').data(\'oldText\',node_text.html()).focus();
});
$(\'.note_text\').blur(function() {
    if ($(this).html() !== $(this).data(\'oldText\')) {
        alert(\'not the same\');
    }
});
这样,处理程序仅绑定一次。     ,        这是由于动作冒泡。 添加ѭ6可以解决此问题。 (记住-
$(\'.note_content\').click(function(event)  {...
)     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。