Javascript + jQuery,单击处理程序返回false以停止浏览器从以下链接

时间:2009-10-26 02:02:06

标签: javascript jquery

我试图阻止浏览器关注某些链接,而不是在点击它们时取消隐藏某些Div。

我遇到麻烦只是让链接不被遵循。

这就是我所拥有的:

var titles = $('a.highlight');
jquery.each(titles, function(){
    this.click(function(){
        return false;
    });
});

似乎没有分配点击处理程序。我错过了什么?

2 个答案:

答案 0 :(得分:3)

尝试

this.click(function(e){ e.preventDefault(); }

实际上,您可能需要在this上使用jQuery构造函数:

$(this).click(function(){ return false; }

您也可以尝试使用each功能上的参数,而不是使用this

jQuery.each( titles, function(index, elem) { $(elem).click( function() { return false; } ) } );

就个人而言,我只会做titles.each( ...。在该实例中,您可以使用this绑定单击处理程序。我不确定thisjQuery.each

绑定的内容

或者只是在click上致电titles

titles.click( function() { return false; } )

这会将点击绑定到titles中的每个元素。你不需要循环它们。

答案 1 :(得分:0)

您可以稍微压缩该jquery:

$('a.highlight').click(function() { return false; });

你还应该确保:

  • 稍后没有为这些元素注册其他点击处理程序。
  • 您加载的元素后附加的代码。如果它们没有完全加载,则不会在$('a.highlight')选择器中找到它们。最简单的方法是将代码放在$(document).ready(function() { *** code here *** });块中。

编辑:根据其他回复 - 问题是this表示DOM对象,而$(this)是jquery对象。要使用.click函数附加处理程序,您需要一个jquery对象。

简而言之,在每个循环中使用this将无法满足您的要求。您需要使用$(this)来获取jquery表示。