Javascript 锚点需要两次单击才能在js中执行操作

Javascript 锚点需要两次单击才能在js中执行操作,javascript,jquery,Javascript,Jquery,我正在调用锚定标记单击上的选项卡更改事件。在第一次加载页面时,需要两次单击才能执行该操作。在移动到下一个选项卡并返回后,相同的函数只需单击一次即可工作。我尝试了不同的方法,但没有工作。我的代码如下:Html链接 <a class="btn btn-default-o pull-right btn-sm" id="checkpname">Next »</a> 更改选项卡是在单击链接两次后完成的。当移动到下一个选项卡时,它在单击一次后完成了相同的工作,这是正确的操作方式。可

我正在调用锚定标记单击上的选项卡更改事件。在第一次加载页面时,需要两次单击才能执行该操作。在移动到下一个选项卡并返回后,相同的函数只需单击一次即可工作。我尝试了不同的方法,但没有工作。我的代码如下:Html链接

<a class="btn btn-default-o pull-right btn-sm" id="checkpname">Next »</a>

更改选项卡是在单击链接两次后完成的。当移动到下一个选项卡时,它在单击一次后完成了相同的工作,这是正确的操作方式。可能有人可以帮助我

问题是由于您在第一次单击链接后绑定更改侦听器/功能的方式,因此,您必须再次单击它以触发新的单击绑定,顺便说一句,当您第二次单击它时,您还添加了另一个新的单击绑定

在代码示例中,您调用函数changetag,它将新的click侦听器绑定到a标记上。删除第二个click bind jQuerythis.clickfunction{并立即启动click应该可以让它工作

例:


如果我没弄错的话,你只想点击一次就可以了吗

看看我根据你的代码制作的小提琴,如果我理解你的意思,请告诉我^^


您是嵌套处理程序,不应该t@A.Wolff意思是?你第一次点击锚点时,你绑定了第二次点击调用changetab函数。只有第二次点击时,新的点击处理程序才会被调用。听起来就像你面临的行为一样
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();
        });
    }
});
$("#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();
  //     });
   });
}