单击另一个元素时单击元素

click element when another is clicked

我有这个列表:

<ul class="titles clearfix">

 <li class="opened">Billing Address</li>
 <li class="">Shipping Address</li>
 <li class="">Review Order</li>

</ul>

还有一个按钮:

<a href="#">Next</a>

我想要做的是,当我点击 "Next" 模拟点击 "Shipping address" 并且如果我再次点击模拟点击 "Review Order"。

我试过这个:

    jQuery("a.next-checkout").click(function(){
     jQuery("ul.titles li").click().next(); 
    return false;
    });

但是当我点击它时,它会直接进入列表中的最后一个,我想一个一个地去。

我该怎么做?

如果您尝试 "simulate" 单击,.trigger() 方法应该有效。

$('#your-selector').trigger('click');

简单回答您的问题。 - 单击 "Next" 模拟单击​​ "Shipping address",如果我再次单击模拟单击 "Review Order"。

<ul class="titles clearfix">

<li class="opened">Billing Address</li>
<li class="s">Shipping Address</li>
<li class="r">Review Order</li>

</ul>

<a href="#">Next</a>


var i = 0;
$("a").click(function(){

  if(i == 0)$("li.r").trigger("click");
  if(i == 1)$("li.s").trigger("click");
  i++;
});

$("li").click(function(){ console.log($(this).text() + " clicked")});

fiddle

要了解这种情况,除了触发对 li 元素的点击外,您还需要跟踪当前选中的 li。下面的代码可能会有帮助:

var curr;
var first_li=$('li:first', 'ul');;

$("#next").click(function () {

if(!curr)
{
    curr=first_li;
}
else
{
  curr=curr.next('li').length ? curr.next('li') : first_li;
}
curr.trigger('click');
});


$('li').click(function(){
    alert($(this).text());
});

试试这个:

这正是您所需要的。

$('a.next-checkout').on('click', function () {
    $('.titles li.opened').next().trigger('click');
    return false;
});

此代码段放大了重复点击事件。

$('a.next-checkout').on('click', function () {
    var nextLi = $('.titles li.opened').next().length ? $('.titles li.opened').next() : $('.titles li:first');
    $('.titles').find(nextLi).trigger('click');
    return false;
});

Demo