我创建了一个按钮。当我单击按钮时,我希望它运行PHP文件并显示警报。这就是我尝试的内容: HTML:
<button id="testid" style="height:20px; width: 50px; cursor: pointer" onclick="logoutfunc()">Logout</button>
JavaScript的:
function logoutfunc() {
$(document).ready(function() {
$("#testid").click(function() {
$.ajax({
url: 'logoutt.php',
type: 'post',
success: function(result11) {
//$(location).attr('href', 'login.php');
alert(result11);
},
error: function() {
alert("no");
}
});
});
});
}
logoutt.php
<?php
$a="Hello";
echo $a;
?>
现在的问题是,当我第一次点击按钮时,它不会显示警告。但是当我再次点击它时,它会显示两次相同的警报。当我再次点击它时,它会发出3次警报,依此类推。我写错了什么?
答案 0 :(得分:4)
您正在内联事件处理程序中绑定click处理程序,因此在第一次附加事件处理程序时单击该按钮。所以它第二次工作。
摆脱内联点击处理程序。只需使用jQuery绑定事件处理程序
$(document).ready(function() {
$("#testid").click(function() {
$.ajax({
url: 'logoutt.php',
type: 'post',
success: function(result11) {
//$(location).attr('href', 'login.php');
alert(result11);
},
error: function() {
alert("no");
}
});
});
});
答案 1 :(得分:1)
为什么你一次又一次地绑定同一事件?
....onclick="logoutfunc()"...
从 HTML 中删除此部分,并在您的javascript中删除围绕文档就绪处理程序的函数。
$(document).ready(function(){
$("#testid").click(function(){
// your ajax code.
});
});