Jquery函数只会触发一次

时间:2016-06-07 03:40:24

标签: jquery function tabs

以下代码段仅在我第一次单击.profile-tabs ul li a元素时才会触发,而不会再次触发。如果我将switchProfTabs()函数直接放入脚本(而不是调用它),它将按预期工作。我很困惑为什么会这样。我在类似问题上看到的所有答案都说它是关于事件委托的,但我想我已经在使用那种方法,不是吗?任何帮助表示赞赏。

//Detects whether the form has been changed or not
// Set the boolean flag variable
var form_changed = false;
$('#profile-form').on('input change', 'input, select, textarea', function(){
     form_changed = true;
});

    // Switches the tabs on the profile page
    $('.profile-tabs ul li a').on('click', function() {
        if ($('.tabContent.active').attr('id') == 'profile') {
            if(form_changed){
                var conf = confirm('Profile has not been saved! Press cancel to save before continuing');
                if (conf){
                    switchProfTabs(this);
                } else {
                    return false;
                }
            } else {
                switchProfTabs(this);
            }
        }
        return false;
    });

    function switchProfTabs(clicked) {
        $('.profile-tabs ul li a.active').removeClass('active');
        $(clicked).addClass('active');
        $('.tabContent').hide();
        var tab = $(clicked).attr('data-tab');
        $('.tabContent.active').removeClass('active');
        $('#'+tab).addClass('active').show();
    }

0 个答案:

没有答案