我在锚标签click上调用tab change事件。在第一次页面加载它需要两次点击以执行该操作。移动到下一个选项卡然后返回然后相同的功能单击一下。我尝试了不同的方法但是没有& #39; t work.My代码如下:Html Link
<a class="btn btn-default-o pull-right btn-sm" id="checkpname">Next »</a>
jQuery(document).ready(function() {
jQuery("#checkpname").click(function() {
if (jQuery('#name').val() == '') {
alert("Please select Product name First.")
jQuery('#name').focus();
jQuery('#name').css('border', '1px solid red');
}
else {
changetab('step2');
}
});
function changetab(hrf){
jQuery('a.btn').each(function () {
jQuery(this).click(function () {
//var thisid = $('#sell .tab-pane.active').attr('id');
jQuery('.wizard a[data-toggle="tab"]').removeClass('current');
jQuery('.wizard a[href="#' + hrf + '"]').click();
});
});
}
更改选项卡是在链接上单击两次完成的。一旦移动到下一个选项卡,然后它在一次单击时执行相同的工作,这是正确的方法。可能有人可以帮助我
答案 0 :(得分:0)
问题是由于您在第一次点击链接后绑定更改侦听器/功能的方式,因此您必须再次单击它以触发新的单击绑定(顺便说一下,您&#39 ;当你第二次点击它时,还要添加另一个新的点击绑定。)
在您的代码示例中,您调用函数changetag
,该函数将新的单击侦听器绑定到a
标记。删除第二次单击绑定jQuery(this).click(function () {
并立即启动单击应该可以使其正常工作。
例如:
jQuery(document).ready(function() {
jQuery("#checkpname").click(function() {
if (jQuery('#name').val() == '') {
alert("Please select Product name First.")
jQuery('#name').focus();
jQuery('#name').css('border', '1px solid red');
}
else {
changetab('step2');
}
});
function changetab(hrf){
jQuery('a.btn').each(function () {
//var thisid = $('#sell .tab-pane.active').attr('id');
jQuery('.wizard a[data-toggle="tab"]').removeClass('current');
jQuery('.wizard a[href="#' + hrf + '"]').click();
});
}
});
答案 1 :(得分:0)
如果我理解正确,您只想点击一次才能使其正常工作?
根据你的代码查看我提出的这个小提琴,如果我理解你,请告诉我^^
$("#checkpname").click(function () {
if ($("#name").val() === '') {
alert("Please select Product name First.");
$('#name').focus();
$('#name').css('border', '1px solid red');
} else {
changetab('step2');
}
});
function changetab(hrf) {
alert('function executed');
$('a.btn').each(function () {
// $('this').click(function () {
alert('second click executed');
$('.wizard a[data - toggle = "tab"]').removeClass('current');
$('.wizard a[href = "#' + hrf + '"]').click();
// });
});
}