我想在点击链接时执行一些操作,我使用以下代码来实现这一点,但它很少有效。如果我点击链接它通常刷新页面,并且1/10次它实际上会弹出“嗨”。有什么问题?
$(document).ready(function()
{
$('#slconfiglink').click(function()
{
alert("hi");
return false;
});
});
HTML:
<ul>
<li><a href="#" id="slconfiglink">Config 1</a></li>
</ul>
请注意,ID不会在HTML
中的其他位置复制答案 0 :(得分:5)
确保<a>
有效href
,如下所示:
<a href="#" id="slconfiglink">Config 1</a>
您的主播需要有href
或name
才有效,否则您会得到一些有趣的行为,这些行为会因使用的浏览器而异。
此外,除非您需要悬停CSS等的锚点...您可以选择将点击处理程序放在<li>
上,如下所示:
<ul>
<li id="slconfiglink">Config 1</li>
</ul>
要检查的其他一些事项,请确保ID是唯一的,如果它不使用类class="slconfiglink"
,而您的选择器将是".slconfiglink"
而不是"#slconfiglink"
。
如果您的元素即时添加,请从
更改$('#slconfiglink').click(function() {
要像这样使用.live()
(或者使用类选择器,如果适用多个注释):
$('#slconfiglink').live('click', function() {
答案 1 :(得分:2)
使用preventDefault()方法确保浏览器不遵循链接。
$(document).ready(function()
{
$('#slconfiglink').click(function(e) {
e.preventDefault();
alert("hi");
});
});
答案 2 :(得分:1)
元素是动态创建的吗?如果您使用Javascript添加它,则需要在将事件处理程序添加到DOM后重新附加它。
答案 3 :(得分:0)
昨天我遇到了同样的问题。
为了解决我刚刚使用简单的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>
我希望这可能有用! ^^
答案 4 :(得分:0)
你可以尝试将锚标签的href更改为 '的javascript:无效(0);'