我想知道是否有办法禁止当前类使用jQuery重新加载页面?
例如,当您在“关于”页面上时,“关于”页面的当前状态不允许用户在再次单击链接时重新加载页面。所以,如果你有某种动画,它就不会重新开始。
如果有人可以伸出援助之手,我将非常感激。
谢谢,
这是我到目前为止所做的:
$(function() {
$page = jQuery.url.attr("file");
if (!$page) {
$page = 'index.html';
}
$('ul.navigation li a').each(function() {
var $href = $(this).attr('href');
if (($href == $page) || ($href == '')) {
$(this).addClass('current');
} else {
$(this).removeClass('current');
}
});
});
答案 0 :(得分:0)
您必须捕获click事件并取消它。请参阅我在以下评论中添加的部分:
$(function(){
$page = jQuery.url.attr("file");
if(!$page) {
$page = 'index.html';
}
$('ul.navigation li a').each(function(){
var $href = $(this).attr('href');
if ( ($href == $page) || ($href == '') ) {
$(this).addClass('current');
/** ADDED BELOW **/
$(this).click(function(event) {
event.preventDefault();
event.stopPropagation();
});
/** ADDED ABOVE **/
} else {
$(this).removeClass('current');
}
});
});
答案 1 :(得分:0)
您可以通过将$(this).addClass('current')替换为:
来禁用链接$(this).addClass('current').find("a").click( function() {
return false;
})
这对我来说过去很有用,但刚刚看到Ben的更新,如果我和他的答案都能奏效或我的是否有缺陷,我会感兴趣吗?是event.preventDefault(); 和event.stopPropagation()更好的选择?
答案 2 :(得分:0)
如何动态地将哈希添加到当前页面的链接?单击URL中带有哈希的链接将不会重新加载页面。 (DOM元素有一个名为“hash”的属性,可以用于此。)