有谁知道如何在不使用return false;
的情况下禁用jquery中的一个链接?
具体来说,我想做的是禁用一个项目的链接,用jquery点击它,触发一些东西,然后重新启用该链接,这样,如果它再次被点击,就会像默认的那样工作。
谢谢。 戴夫
更新 这里是代码。在应用".expanded "类之后,它需要做的是重新启用被禁用的链接。
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
$('#myLink').click(function(e) {
e.preventDefault();
//do other stuff when a click happens
});
这将阻止超链接的默认行为,即访问指定的href。
来自jQuery的教程。
对于点击和大多数其他事件,你
这里,按照jquery.com的链接
- 通过在事件处理程序中调用event.preventDefault()
如果你想preventDefault()
只在某个条件得到满足的情况下(例如某物被隐藏),你可以用expanded类测试你的ul的可见性。如果它是可见的(即没有隐藏),链接应该正常启动,因为if语句不会被输入,因此默认行为不会被阻止。
$('ul li').click(function(e) {
if($('ul.expanded').is(':hidden')) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
}
});
试试这个。
$("a").removeAttr('href');
EDIT-
从你更新的代码来看。
var location= $('#link1').attr("href");
$("#link1").removeAttr('href');
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
$("#link1").attr("href", location);