jQuery .click()没有正确绑定

Chr*_*ris 5 jquery

我想在点击链接时执行一些操作,我使用以下代码来实现这一点,但它很少有效.如果我点击链接它通常刷新页面,并且1/10次它实际上会弹出"嗨".怎么了?

$(document).ready(function()
{
    $('#slconfiglink').click(function()
    {
        alert("hi");
        return false;
    });

});
Run Code Online (Sandbox Code Playgroud)

HTML:

<ul>
    <li><a href="#" id="slconfiglink">Config 1</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

请注意,ID不会在HTML中的其他位置复制

Nic*_*ver 5

确保给你<a>一个有效的href,如下:

<a href="#" id="slconfiglink">Config 1</a>
Run Code Online (Sandbox Code Playgroud)

你的锚需要有一个href或一个name有效,否则你会得到一些有趣的行为,这些行为会因使用的浏览器而异.

此外,除非你需要锚定悬停CSS等...你可以选择将点击处理程序放在右边<li>,如下所示:

<ul>
  <li id="slconfiglink">Config 1</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

还有一些其他要检查的事情,确保ID是唯一的,如果它不使用类,那么class="slconfiglink"你的选择器将".slconfiglink"代替"#slconfiglink".

如果您的元素即时添加,请更改

$('#slconfiglink').click(function() {
Run Code Online (Sandbox Code Playgroud)

.live()像这样使用(或使用类选择器,如果适用多个注释):

$('#slconfiglink').live('click', function() {
Run Code Online (Sandbox Code Playgroud)