我有这个代码在同一个按钮的功能内自动触发按钮的点击事件,这里是按钮的HTML:
<a class="button widget uib_w_4 d-margins icon user black"
data-uib="app_framework/button" data-ver="1" id="btnconnecter"
onclick="mycallback()" href="" >
以下是mycallback
函数的内容:
function mycallback(data) {
test=false;
var eml = document.getElementById("tbemail").value;
var mp = document.getElementById("tbmdp").value;
$.each(data.user, function (i,data)
{
if((data.email==eml )&&(data.mdp==mp))
test=true;
});
if (test==true)
{
$("#btnconnecter").href="#acc";
$('#btnconnecter').trigger( "click" );
}
else
intel.xdk.notification.alert("verifier votre email/mot de passe");
}
问题是未触发click事件。有什么问题?
答案 0 :(得分:0)
尝试添加结束标记和一些文本。这适用于标准html。不确定trigger.io框架是否影响功能。
<a id="btnconnecter" onclick="mycallback()" href="" >some text</a>
另外,在函数中添加一个简单的行,以查看问题是否未被调用,或者函数逻辑是否无效。当您认为未调用函数时,这始终是确定根本原因的第一步。
alert("in my call back");
答案 1 :(得分:0)
jQuery的.click()
和.trigger("click")
功能不像普通点击那样行事;他们没有读取href属性,因此他们无法以这种方式更改页面。解决此问题的最佳方法是将变量window.location.href
设置为您要转到的URL。这将导致浏览器刷新并加载所请求的页面。
注意:
我必须添加自己的data
对象,因为你没有加入
您发布的代码。
我删除了onclick="callback()"
并将所有内容放入jQuery中
事件处理程序,并将JavaScript选择器更改为jQuery
选择。这使得代码更短,更一致。
$("#btnconnecter").click(function(){
var data = {
"user" : [
{"email" : "email",
"mdp" : "motdepasse"},
{"email" : "email2",
"mdp" : "motdepasse2"}
]
}
var test = false;
var eml = $("#tbemail").val();
var mp = $("#tbmdp").val();
$.each(data.user, function(k,v) {
if(v.email == eml && v.mdp == mp) {
test = true;
}
});
if (test == true) {
alert("L'email et mot de passe sont corrects.");
window.location.href = "#acc";
} else {
//intel.xdk.notification.alert("Verifier votre email/mot de passe.");
alert("Verifier votre email/mot de passe.");
}
});