单击另一个元素时单击元素
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")});
要了解这种情况,除了触发对 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;
});
我有这个列表:
<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")});
要了解这种情况,除了触发对 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;
});