2013-09-05 68 views
4

我试图创建一个浮动div谁显示时,按钮被触发。这并不难,但是当我按下按钮时,页面会自动重新加载。我不知道为什么。jQuery.Click方法重新加载页面

我试图使用Bootstrap的Popover,但由于同样的问题,它没有像预期的那样工作。当弹出窗口被触发时,页面重新加载,弹出窗口显然消失。

我正在使用RoR,只是说如果这将有助于找出问题。

我在文档的底部是这样的:

<a href="#" class="btn btn-small btn-warning" id="example">Show</a> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     console.log("Page is loaded."); 

     // Custom Popover 
     $("#example").click(function() { 
      console.log("Showing"); 
     }); 
    }); 
</script> 

第一console.log内准备功能显示在页面加载时。当我触发按钮“显示”时,console.log再次显示在浏览器的控制台中。这没有任何意义。

谢谢!

回答

14

您需要使用preventDefault()阻止链接的默认行为:

$("#example").click(function(e) { 
    e.preventDefault(); 
    console.log("Showing"); 
}); 
1

你有问题,而不是class你已经使用href

<a href="#" class="btn btn-small btn-warning" id="example">Show</a> 
+0

对不起,在我原来的html文件我有href放。我忘了在上面的例子中添加它。这不是问题。对不起。 –

1

你有两个问题:

您正在将您的课程设置为您的href属性而不是class

<a href="#" class="btn btn-small btn-warning" id="example">Show</a> 

你会想从下面的href停止浏览器链接时被调用:

$("#example").click(function(e) { 
    e.preventDefault(); // don't follow href 
    console.log("Showing"); 
}); 
1

你必须停止锚做它的默认功能,加载页面中指定的HREF 。 此代码应该做的伎俩:

$("#example").click(function(event) { 
    event.preventDefault(); 
    console.log("Showing"); 
}); 
1

这不能,它应该工作正常。必须有其他问题,请填写完整页面。

$(document).ready(function() { 

    console.log("Page is loaded."); 

    // Custom Popover 
    $("#example").click(function() { 
     console.log("Showing"); 
    }); 

});

See here

1

在这里你可以找到一个完全工作的例子。 test here

$(document).ready(function() 
{ 
    console.log("Page is loaded."); 

    $("#example").click(function(e) 
    { 
     e.preventDefault(); 
     alert("works"); 
    }); 

});