2015-11-05 104 views
1

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

/************ 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页面。

Link to Page

如果你去这个链接,有一个形象:

enter image description here

当我点击登录按钮,点击功能运行多次,控制权转至其他功能之前。我想要点击功能运行一次,然后控制应该去其他功能。

我试过e.stopPropagation但是如果在同一页面上弹出,弹出窗口不会打开。在这里点击登录,弹出来。

回答

2

是否有您使用的是以下的任何原因?

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

我想这可能会更好地工作

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

好运

+0

是的,有一个原因,我想每一个检测单击该文档内做出。所以这就是为什么我使用这个。 –

+0

谢谢Chrishtopher,我做了特别的编辑,它工作...........非常感谢:) –

+0

这是多次发射的原因是所有的包装也有事件冒泡给他们,当' *'被使用 - 所以每个包装器也触发了事件。 –

0

我不知道你在哪里卡住了,你可以使用one运行点击功能只有一次:

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