0

首先请访问这个小提琴:http: //jsfiddle.net/XvAR6/

现在向下滚动查看。

这里我使用了 jQuery ui。但是,这不是问题,主要问题是当我单击下一个或上一个时,页面会自动滚动到顶部。我不想要滚动。我可以得到解决方案吗?

这是jQuery代码:

$("#tab1, #tab2").tabs({active: 1});

var all = $('.udtalelse').addClass("passiv");

var i = -1;

$('#prev').click(function() {
    ctrlKunder( i = !i ? all.length - 1 : --i );
});
$('#next').click(function() {
    ctrlKunder( i = ++i % all.length );
}).click();

function ctrlKunder(ele) {
    all.removeClass("active").addClass("passiv");
    all.eq(ele).removeClass("passiv").addClass("active");
}

谢谢你。

4

4 回答 4

2

event在 的 中添加对callback function的引用click。我们在这里用变量引用它e。然后使用e.preventDefault(); 停止默认页面跳转。

$('#prev').click(function(e) {
    e.preventDefault(); // add this
    ctrlKunder( i = !i ? all.length - 1 : --i );
});
$('#next').click(function(e) {
    e.preventDefault(); // add this
    ctrlKunder( i = ++i % all.length );
}).click();
于 2013-04-24T18:06:20.830 回答
2

您的锚标签的 href 为#,因此当它们被点击时,页面的哈希值会更新为#滚动到顶部。阻止默认操作使其停止。

$('#prev').click(function(e) {
    e.preventDefault();
    ...
于 2013-04-24T18:06:57.867 回答
0

您可以在此处使用event.preventDefault()return false;

$('#prev').click(function(e) {
   e.preventDefault(); // return false;
   ctrlKunder( i = !i ? all.length - 1 : --i );
});
$('#next').click(function() {
   e.preventDefault(); // return false;
   ctrlKunder( i = ++i % all.length );
}).click();

你也可以用return false;return false;也将停止事件冒泡。


从文档:

描述:

如果调用该方法,则不会触发事件的默认动作。

于 2013-04-24T18:06:58.120 回答
0

你有两个选择。

href将下一个/上一个链接中的更改为javascript:;OR

将点击事件更改为:

$('#prev').click(function(e) {
    ctrlKunder( i = !i ? all.length - 1 : --i );
    e.preventDefault();
});

$('#next').click(function(e) {
    ctrlKunder( i = ++i % all.length );
    e.preventDefault();
}).click();
于 2013-04-24T18:07:58.440 回答