18

我有这个锚点,点击时我想弹出一些东西。此 href 位于具有其他 href 的页面内。

<a class="sign_new" href="#sign_up">Sign up</a>

jQuery:

$(document).ready(function(){
   $('a[href = "sign_up"]').click(function(){
      alert('Sign new href executed.'); 
   }); 
});

上面的代码没有启动。

4

4 回答 4

41

这不是因为 href 值不是.sign_up它是#sign_up. 尝试如下,您需要添加“#”来表示 href 值的 id。

$('a[href="#sign_up"]').click(function(){
  alert('Sign new href executed.'); 
}); 

演示:http: //jsfiddle.net/pnGbP/

于 2013-01-14T21:44:03.527 回答
9

如果你拥有 HTML 代码,那么为这个 href 分配一个 id 可能是明智的。然后您的代码将如下所示:

<a id="sign_up" class="sign_new">Sign up</a>

和 jQuery:

$(document).ready(function(){
    $('#sign_up').click(function(){
        alert('Sign new href executed.');
    });
});

如果您不拥有 HTML,那么您需要将 $('#sign_up') 更改为 $('a.sign_new')。如果您在锚点中有一个 href 并且不想处理它,您也可以触发 event.stopPropagation() (AFAIR return false 也可以工作)。

$(document).ready(function(){
    $('#sign_up').click(function(event){
        alert('Sign new href executed.');
        event.stopPropagation();
    });
});
于 2013-01-14T21:56:57.533 回答
4

尝试:

$(document).ready(function(){
   $('a .sign_new').click(function(){
      alert('Sign new href executed.'); 
   }); 
});

您混淆了classhref名称/选择器类型。

于 2013-01-14T21:44:23.487 回答
0

您正在将事件绑定到具有带有 value 的href属性的click锚点。sign_new

使用 classsign_new绑定锚点或使用 href 值绑定锚点#sign_up。我更喜欢前者。

于 2013-01-14T21:44:33.993 回答