return false不阻止点击

return false not preventing click

本文关键字:false return      更新时间:2023-09-26

我有这个jquery来防止点击,但它不起作用,为什么?

HTML

<a href="page.htm?action=addtofav&amp;id=556" class="fav-auto">
<div class="favno button-com color">Favorite</div></a>

Javascript

$(document).ready(function() { 
        $(document).on("click","a.fav-auto",function(e) {
           $.get($(this).attr("href"),function(fav-lin) {
              var fav-pos = $(fav-lin).find('.fav-mess-in');
              var fav-pis2 = $(this).attr("href");
              $('fav-mess').empty();
              $('fav-mess').append(fav-pos);
              $('fav-mess').append(fav-pos2);
           });
              return false;
          });
}); 

return false确实可以很好地工作,但您的代码中存在一些语法错误。

首先,我认为$('fav-mess')应该是$('.fav-mess')id$('#fav-mess')选择器,而不是标记选择器。

接下来,您必须更改fav-posfav-pos2fav-lin变量
不能在变量声明中使用-(minus)运算符-这是一个语法错误(javascript将它们解释为数学运算:favminuspos):

var fav-pos = $(fav-lin).find('.fav-mess-in');
var fav-pos2 = $(this).attr("href");

将它们替换为类似的东西(在'fav-mess'元素上使用了类,因为我不确定您选择的是什么):

$.get($(this).attr("href"),function(fav_lin) {
    var fav_pos = $(fav_lin).find('.fav-mess-in');
    var fav_pos2 = $(this).attr("href");
    $('.fav-mess').empty();
    $('.fav-mess').append(fav_pos);
    $('.fav-mess').append(fav_pos2);
});

PS。尽可能使用链接,这样就不会为了一个元素而不必要地多次遍历DOM:

$.get($(this).attr("href"),function(fav_lin) {
    var fav_pos = $(fav_lin).find('.fav-mess-in');
    var fav_pos2 = $(this).attr("href");
    // chain the element manipulation:
    $('.fav-mess').empty().append(fav_pos).append(fav_pos2);
});