【发布时间】:2016-05-24 11:03:52
【问题描述】:
我正在构建一个登录/加入表单,该表单涉及一次输入一个字段(在模式样式框中),该表单很快被另一个字段替换。
这一切都可以完美运行,直到我添加用于在模式框外单击的代码,如下所示
$(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();
}
});
}
【问题讨论】:
-
也想检查您的 HTML
-
将事件对象传递给点击回调。
$("#logins-box").click(function(){==>$("#logins-box").click(function(event){ -
@Rivz11 检查浏览器控制台输出是否有错误?
-
@Tushar 我已经尝试过了,但不幸的是仍然有问题,在我的问题中添加了一些关于代码无法触发的问题......黑曜石没有错误出现,只是提交时没有任何反应阶段:/
-
我认为您缺少函数的事件参数。要使 event.stopPropogation() 起作用,必须有一个事件参数!
标签: javascript jquery node.js meteor