繁体   English   中英

jQuery函数多次运行

[英]Jquery Function running multiple times

我在页面上使用了两个脚本,并且有一个常规的点击功能,该功能可以记录一个用户的点击次数。 因此,当我单击文档中的任何元素时,应先运行click函数,然后再运行同一元素上的其他函数。 但就我而言,在将控件传递给另一个函数之前,click函数会运行多次。

/************ 1st Jquery Script ***************/
    function($) {
      $(function(e) {
       $('.signupCustom').click(function(){
        var email = $('#form-email').val()
        var password = $('#pass').val()
        var firstName= $('#form-first-name').val()
        var lastName= $('#form-last-name').val()
        var number= $('#form-mobile').val()
        var type=$('#sel1').val()

        $.ajax({
            url: '/login',
            type: 'GET',
            data: {
                'email': email,
                'password':password,
                'firstName':firstName,
                'lastName':lastName,
                'number':number,
                'type':type
            },
            success: function(data){
                if ($('#sel1').val() == "Travel-Agent"){
                    window.location.href = "/agentVerification.html"
                }
                else{
                    window.location.href = "/dashboardTraveller"
                }
            }
        })
    })

    $('.login').click(function(){
        var email = $('#form-username').val()
        var password= $('#form-password').val()
        $.ajax({
            url: '/loginCustom',
            type: 'GET',
            data: {
                'email': email,
                'password':password
            },
            success: function(data){
                window.location.href = data['url']
            }
        })
    })

    $('.destinationsButton').click(function(){

        var url="/destinations";
        window.location=url;
    })


});   })(jQuery);

我已将链接附加到包含第二个脚本的html页面。

链接到页面

如果您转到此链接,则有一个图像:

在此处输入图片说明

当我单击“登录”按钮时,单击功能会运行多次,然后控件才能转到其他功能。 我希望单击功能一次运行,然后控件应转到其他功能。

我尝试了e.stopPropagation但是如果在同一页面上出现弹出窗口,则该弹出窗口不会打开。 点击登录后,弹出窗口就会出现。

您使用以下任何理由吗?

jQuery('*').on("click",function(e){});

我认为这可能会更好

jQuery('body').on("click",function(e){});

祝好运

我不知道您会被卡在哪里,但是您可以只使用一次来运行click函数:

$(selector).one('click',function(){
   //code runs only one click
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM