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