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

的HTML

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


Java脚本

$(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变量。
您不能在变量声明中使用-(减号)运算符-这是一种语法错误(javascript将它们解释为数学运算:favpos):

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。尽可能使用chaining,这样就不必不必要地遍历单个元素的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);
});

关于javascript - 返回false不阻止点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29334658/

10-12 20:59