我需要两次处理AJAX请求,首先是在第一次打开网站时,第二次是在点击按钮时。我不想写两个类似的功能。所以我创建了一个ajaxPost
函数。我想知道如何检测哪个事件称为ajaxPost
函数?打开浏览器或点击按钮?
function ajaxPost() {
url = "post.php";
if (this!=Window) {
button = $(this).attr("class");
} else {
button = "";
}
var posting = $.post(url,{"button": button});
posting.done(function(data) {
$(".word").html(data);
});
}
$(document).ready(function() {
ajaxPost();
$("input[type=button]").click(ajaxPost);
});
答案 0 :(得分:1)
检查您通过点击传递的jQuery事件。
function ajaxPost(event) {
url = "post.php";
if (event == undefined || event == null) { //Was not generated by a user click
button = $(this).attr("class");
} else {
button = "";
}
var posting = $.post(url,{"button": button});
posting.done(function(data) {
$(".word").html(data);
});
}
$(document).ready(function() {
ajaxPost();
$("input[type=button]").click(ajaxPost);
});
答案 1 :(得分:1)
一个简单的解决方案是在调用函数时包含一个附加参数:
function ajaxPost( caller ) {
switch( caller ){
case "initial_load":
// called on page load
break;
case "button_click":
// called on button click
break;
}
...
}
现在您需要从两种不同类型的调用中传递此参数:
$(document).ready(function() {
ajaxPost( "initial_load" );
$("input[type=button]").on( "click", function(){
ajaxPost( "button_click" );
});
});