我一直在用json创建一个页面,并且有一个简单的登录。当用户ID和名称与我的json文件匹配时:
{
"user":[
{
"ID" : "001",
"imgpath":"image/zara.jpg",
"message": " , We have new iphones avaiable",
"name": "Zara Ali"
},
{
"ID" : "002",
"imgpath":"image/iphone5.jpg",
"prefer": " Loves macs",
"name": "Laura Ali"
},
{
"ID" : "003",
"imgpath":"image/iphone5.jpg",
"message": " Loves ipods",
"name": "Courtney Ali"
},
{
"ID" : "004",
"imgpath":"image/iphone5.jpg",
"message": " Loves Ipads",
"name": "Max Ali"
}
]
}
所以名称几乎就像用户名,而id就像密码一样,当这些名称匹配时,会在页面顶部弹出一个包含用户图片,名称等的警告,如果无效用户试图输入他们的详细信息(不是json或用户名和密码的一部分与无效警报不匹配)我还有一个隐藏按钮,显示欢迎用户提醒,我已将其包括但当我点击它并尝试添加.click hide()这个功能不起作用。
这是我的脚本到目前为止包括按钮,在脚本中你会看到这是登录警报的一部分:
<button type="button" id="btnhide" class="btn btn-primary btn-md">Hide</button>
:
$(document).ready(function() {
//Hide alert when page loads
$("#loginalert").hide();
$("#invalid").hide();
$("#loginbtn").click(function(event){
//console.log("clicked login");
$.getJSON('result.json', function(jd) {
var id = $('#userName').val();
var name = $('#userName2').val();
var valid = false;
//console.log(id);
for (var i=0; i<jd.user.length; i++) {
if ((jd.user[i].ID == id) && (jd.user[i].name == name)) {
valid=true;
$('#loginalert').html('<img src="' + jd.user[i].imgpath + '"><br><p> Welcome: ' + jd.user[i].name + '</p><button type="button" id="btnhide" class="btn btn-primary btn-md">Hide</button>');
//show the alert after loading the information
$("#loginalert").stop().fadeIn('slow').animate({ opacity: 1.0 }, 3000)('slow', function () {
//$("#invalid").hide();
});
}
}
if (!valid) {
$('#invalid').fadeIn('slow');
}
}); }); });
所以我需要让按钮实际隐藏#loginalert
非常感谢你们答案 0 :(得分:3)
您可以委派活动:
$('#loginalert').on('click', '#btnhide', function(e){
$(e.delegateTarget).hide(); // or `$('#loginalert').hide()`
});
答案 1 :(得分:0)
我让这个工作..请看下面:
$("#loginalert").stop().fadeIn('slow').animate({ opacity: 1.0 }, 3000)
$('#invalid').hide();
$('#btnhide').on('click', function(e){
e.preventDefault();
$('#loginalert').hide();
});
}
}
if (!valid) {
$('#invalid').fadeIn('slow');
$('#loginalert').hide();