我有以下功能:
$('#btn-homeheroleft').click( function() {
if ( $('#homehero-btns a.on:not(:first)')) {
$('#homehero-btns a.on').prev('a').trigger('click');
} else {
//$('#homehero-btns a.on').prev('a').trigger('click');
$('#homehero-btns a').last('a').trigger('click');
}
//return false;
});
它可以很好地旋转英雄横幅,直到它到达第一个,它应该返回到最后一个循环,但是它永远不会到达其他地方,并且由于某种原因总是在if上评估为true。
我在控制台中执行了$('#homehero-btns a').last('a').trigger('click')
,它在那里工作得很好。
更新
如果有人有兴趣,这是我的问题的解决方案,谢谢大家的帮助。
$('#btn-homeheroleft').click( function(e) {
if ( $('#homehero-btns a:first').hasClass('on') ) {
$('#homehero-btns a:last').trigger('click');
} else {
$('#homehero-btns a.on').prev('a').trigger('click');
}
e.preventDefault();
});
$('#btn-homeheroright').click( function(e) {
if ($('#homehero-btns a:last').hasClass('on')) {
$('#homehero-btns a:first').trigger('click');
} else {
$('#homehero-btns a.on').next('a').trigger('click');
}
e.preventDefault();
});
}
答案 0 :(得分:1)
当您询问英雄滑块逻辑时,我将解决结构和方法部分,忽略您当前的代码(可能会起作用,但可能会更好。)
对于这种情况,旋转必须无限制。你可以使用一个非常简单的技巧。每次将它旋转到下一个图像(或幻灯片,无论内容是什么)..你想将最后一个图像移到前面,反之亦然。
我曾经在这里做了一个非常简单的滑块旋转器来解决一些问题。这是一个非常好的例子,说明使旋转器动态变得多么容易:http://jsfiddle.net/PmXr2/1/您可以随意使用该代码。
答案 1 :(得分:1)
尝试将.length添加到选择器
$('#btn-homeheroleft').click( function() {
if ( $('#homehero-btns a.on:not(:first)').length) {
$('#homehero-btns a.on').prev('a').trigger('click');
} else {
//$('#homehero-btns a.on').prev('a').trigger('click');
$('#homehero-btns a').last('a').trigger('click');
}
//return false;
});