如果默认锚点有一个类子导航,如this fiddle所示,我会禁用它。
我只希望在第一次单击时禁用此功能,然后我希望恢复正常的锚点功能。 做这个的最好方式是什么? 我尝试了涉及以下代码的操作,但这似乎不起作用?
$(this).unbind(event.preventDefault());
也许像这样的伪代码?
if (click count === 0 ) {
event.preventDefault();
}
或者有更好的方法来解决这个问题吗?
这个效果很好。 第二次点击进入页面...
$(".smallNavigation > ul > li > a").click(function (e) {
$("ul.sub-menu").hide();
$("ul.sub-menu", $(this).parent("li")).show();
e.preventDefault();
$(this).unbind(e);
}
将事件处理程序与
one()
docu 绑定。它执行一次,然后自动解绑。
$(".subnav a").one("click", function(event) {
event.preventDefault();
});
或者您可以直接在函数中自行解绑。为此使用命名空间是很好的
$(".subnav a").bind("click.myclick", function(event) {
event.preventDefault();
$(this).unbind(".myclick");
});
您可以在点击处理程序中使用像 self unbind 这样简单的东西。
类似
function stopEventOnce(event) {
event.preventDefault();
$(this).unbind('click',stopEventOnce);
return false;
}
$(".subnav a").bind('click', stopEventOnce);
这对你有用
$("#elementid").bind("click", function( event ) {
alert("This will be displayed only once.");
event.preventDefault();
$(this).unbind( event );
});