我有一个下一个按钮和上一个按钮,当活动变量为1时我想跳过下一步2并直接进入步骤3.为了达到这个目的,我使用了触发功能。这是我的代码:
var active = -1;
jQuery('.next').click(function(event){
if (active < 0) // make sure you only set active value one time
active = jQuery('ul#checkout_timeline').find('li.active').data('step');
alert(active);
if(active == '1')
{
active = 0//prevent active being set to 1 again.
jQuery(".next").trigger("click");
// console.log(active);
active = jQuery('ul#checkout_timeline').find('li.active').data('step')+1;
return false;
}
这是完美的工作我有一个类似的prev按钮,我尝试使用相同的代码,以便当它到达第3步和下一个&#34; PREV&#34;按钮单击它应跳过一步并转到步骤1.
jQuery('.prev').click(function(event){
var active = -1;
if (active < 0) // make sure you only set active value one time
{
active = jQuery('ul#checkout_timeline').find('li.active').data('step');
alert(active);
if(active == '3')
{
active = 0//prevent active being set to 1 again.
jQuery(".prev").trigger("click");
// console.log(active);
active = jQuery('ul#checkout_timeline').find('li.active').data('step');
return false;
}
}
});
但是这里警报值继续按下prev按钮返回值3。那是做错了什么。
答案 0 :(得分:1)
您需要找到一种方法来重置活动值,然后再次触发click事件,否则最终会获得无限循环。
你可以试试的东西:
var active = -1;
jQuery('.next').click(function(event){
if (active < 0) // make sure you only set active value one time
active = jQuery('ul#checkout_timeline').find('li.active').data('step');
if(active == '1')
{
active = 0 //prevent active being set to 1 again.
jQuery(".next").trigger("click");
return false;
}
});
答案 1 :(得分:0)
设置&#39;有效&#39;循环外的变量很重要。
然后,如果您发现
,则可以切换它var active = 0;
jQuery('.next').click(function(event){
active = jQuery('ul#checkout_timeline').find('li.active').data('step');
if(active == '1')
{
active = 0; // depending on step 3, you may not need this
// do something to go to step 3 (which is NOT jQuery(".next").trigger("click"); as that causes the infinite loop and error message)
return false;
}
// do whatever step 2 is
});
如果没有更清晰的代码示例,则无法提供帮助,尽管这样可以摆脱无限循环并一遍又一遍地工作。