首页 > 解决方案 > Javascript Show Hide input 在第二次加载引导模式时不起作用

问题描述

我有一个 JavaScript 代码可以使用引导模式中的复选框隐藏和显示上传输入,它在第一次启动模式时工作,但第二次我打开模式,然后单击复选框以显示上传输入,它显示但随后它会自动隐藏它。

$('.modal').on('loaded.bs.modal', function (e) {        
    $(".upload_file").hide();
    $(".show_hide").show();

    $('.show_hide').click(function(){
        $(".upload_file").slideToggle();    
    });

       //jquery validation goes here...
}); 

我在这里缺少什么,希望你们能提供帮助。TIA。

标签: javascripttwitter-bootstrap-3

解决方案


您正在创建多个单击事件,每次打开模式时都会创建一个新事件。

改变

$('.show_hide').click(function(){
    $(".upload_file").slideToggle();    
});

$('.show_hide').off('click').on('click', function(){
    $(".upload_file").slideToggle();    
});

这将杀死第一个单击事件,然后重新绑定它。

或者,您可以将 click 事件的绑定移出模式初始化,这样它只会被调用一次。


推荐阅读