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