jQuery.click()未正确绑定

jQuery.click()未正确绑定,jquery,Jquery,我想在点击链接时执行一些操作,我使用以下代码来实现这一点,但它很少起作用。如果我点击这个链接,它通常会刷新页面,1/10次它会弹出“嗨”。怎么了 $(document).ready(function() { $('#slconfiglink').click(function() { alert("hi"); return false; }); }); HTML: 请注意,ID不会复制到HTML中的其他位置,请确保这样给出您的(或

我想在点击链接时执行一些操作,我使用以下代码来实现这一点,但它很少起作用。如果我点击这个链接,它通常会刷新页面,1/10次它会弹出“嗨”。怎么了

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

});
HTML:


请注意,ID不会复制到HTML中的其他位置,请确保这样给出您的
(或者使用类选择器,如果多注释适用):


元素是动态创建的吗?如果使用Javascript添加,则需要在事件处理程序添加到DOM后重新附加它。

使用preventDefault()方法确保浏览器不跟随链接

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

我昨天也有同样的问题
为了解决这个问题,我刚刚将简单javascript与jQuery结合使用

我就是这么做的:

<script>
    function yourFunction()
    {
        alert("hi");
        //$("#slconfiglink").doWhatYouWant();
    }
    $(document).ready(function()
    {
        $("#slconfiglink").attr('onclick', 'yourFunction();')
           //I did it in this way to garantee the function 
           //will only be called after the DOM is ready
    });
</script>

<a id="slconfiglink" href="javascript:;">click me</a>

函数yourFunction()
{
警报(“hi”);
//$(“#slconfiglink”).doWhatYouWant();
}
$(文档).ready(函数()
{
$(“#slconfiglink”).attr('onclick','yourFunction();'))
//我这样做是为了保证功能
//将仅在DOM就绪后调用
});

我希望这会有用^^

能否尝试将锚定标记的href更改为
'javascript:void(0);'

你在所有链接上都使用了相同的id吗?…正如我在上面代码中看到的那样?我刚刚将你的代码粘贴到我的一个旧jQuery测试页面中,效果很好。我看不出有什么不对劲。您是否在一个新的测试页面中尝试过这段代码?您使用的浏览器是什么?jQuery版本是什么?@Piotr 1.4.1和Firefox@Matt我使用了我粘贴在许多其他页面上的相同代码,这让我想知道这一个有什么不同?@Chris-更新了一些场景以检查,看看是否有适用的。谢谢Nick,非常全面的答案,但我仍然没有乐趣。我将ID移动到
  • ,但这也不起作用。HTML是静态的,因此也不需要
    live()。我完全搞不懂它为什么不起作用@克里斯-有一个我可以看一看的示例页面吗?@Nick-我将代码改为使用
    live()
    而不是
    $(document).ready()
    ,这很有效。。。不知是否出于某种原因,
    $(document).ready()
    在这个特定页面上有问题?@Chris-是通过ajax或其他方式添加的元素吗?
    返回false
    已经阻止了默认行为和任何冒泡。
    <ul>
      <li id="slconfiglink">Config 1</li>
    </ul>
    
    $('#slconfiglink').click(function() {
    
    $('#slconfiglink').live('click', function() {
    
    $(document).ready(function()
    {
        $('#slconfiglink').click(function(e) {
            e.preventDefault();
            alert("hi");
        });
    });
    
    <script>
        function yourFunction()
        {
            alert("hi");
            //$("#slconfiglink").doWhatYouWant();
        }
        $(document).ready(function()
        {
            $("#slconfiglink").attr('onclick', 'yourFunction();')
               //I did it in this way to garantee the function 
               //will only be called after the DOM is ready
        });
    </script>
    
    <a id="slconfiglink" href="javascript:;">click me</a>