jquery函数阻止其他人触发

时间:2016-02-13 07:10:21

标签: javascript jquery node.js meteor

我正在构建一个登录/加入表单,其中包括一次输入一个字段(在模式样式框内),这很快会被另一个字段替换。

这一切都完美无缺,直到我在模态框外面添加我的代码,如下所示

$(document).ready(function(){
    $("#loginJoinBackground").click(function(){
        $("#loginJoinBackground").fadeOut(300,function(){});
    });

    $("#logins-box").click(function(){
        event.stopPropagation();
    });
});

现在,它也可以正常运行。 问题是当我有代码时,它会阻止其他函数触发。有什么明显的东西我不见了吗?

编辑:我正在使用流星,所以也许可能会对事物产生不同的影响,由于上述原因导致无法触发的代码如下:

$(document).on("click", "#loginB", function(){

logMeIn($("#logU").val(), "");
})
 function logMeIn(emailVar, passwordVar = ""){
 Meteor.loginWithPassword(emailVar, passwordVar, function(err){
  console.log(err.reason);
  if(err.reason == "Incorrect password"){
        event.preventDefault();
        $("#spanEmailLogin").hide("slide", { direction: "left" }, 200);
        $("#spanPasswordLogin").show("slide", { direction: "right" }, 200);
        $("#logP").focus();
  }



  else{
    event.preventDefault();
    $("#spanEmailLogin").hide("slide", { direction: "left" }, 200);
    $("#spanPasswordLoginForm").show("slide", { direction: "right" }, 200);
    $("#passwordForm").focus();
  }
});


  }

3 个答案:

答案 0 :(得分:0)

您是否尝试调用preventDefault()方法而不是stopPropagation()

$(document).ready(function(){
    $("#loginJoinBackground").click(function(){
        $("#loginJoinBackground").fadeOut(300,function(){});
    });

    $("#logins-box").click(function(e){
        e.preventDefault()
        //event.stopPropagation();
    });
});

答案 1 :(得分:0)

$(document).ready(function(){
 $("#loginJoinBackground").click(function(){
 $("#loginJoinBackground").fadeOut(300,function(){}); });
 $("#logins-box").click(function(event){
event.stopPropagation(); 
}); 
});

可能 工作我不确定

答案 2 :(得分:0)

click事件无需jquery。您应该使用Template.events

试试这个让我知道:

Template.youTemplate.events({
  'click #loginB': function (e,t) {
    var emailVar = t.find('#logU').value
    var passwordVar = t.find('#logP').value
    Meteor.loginWithPassword(emailVar, passwordVar, function(err){
      console.log(err.reason);
      if(err.reason == "Incorrect password"){
        e.preventDefault();
        $("#spanEmailLogin").hide("slide", { direction: "left" }, 200);
        $("#spanPasswordLogin").show("slide", { direction: "right" }, 200);
        $("#logP").focus();
      } else{
        e.preventDefault();
        $("#spanEmailLogin").hide("slide", { direction: "left" }, 200);
        $("#spanPasswordLoginForm").show("slide", { direction: "right" }, 200);
        $("#passwordForm").focus();
      }
    });
  }
});