我有这个:
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
var nocache = 0;
function insert() {
document.getElementById('insert_response').innerHTML = "To Sek .. "
var bID= encodeURI(document.getElementById('bID').value);
var kommentar= encodeURI(document.getElementById('kommentar').value);
nocache = Math.random();
http.open('get', 'insert.php?bID='+bID+'&kommentar=' +kommentar+'&nocache = '+nocache);
http.onreadystatechange = insertReply;
http.send(null);
}
function insertReply() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('insert_response').innerHTML = response;
if ($("#box[value=1]").length > 0) { window.parent.showMessage("Video Is OK"); }
}
}
我希望“缩短”代码,并使其充分利用jQuery。例如,我听说过serialize();而不是使用http.open等..但在这种情况下我应该如何使用它?
我是否真的需要createobject()中的所有内容来制作http?
答案 0 :(得分:0)
通过调用get method in jQuery可以清除大部分内容。
首先,它会为您抽象出特定于浏览器的详细信息,因此您无需检查如何获取XMLHttpRequest。
然后,您可以使用jQuery通过选择器获取元素。要按ID选择任何元素,您将使用以下语法:
$("#<id>")
主题标签表示您要选择具有指定ID的元素。从那里你可以使用一些general attribute functions来获取特定元素中的值。
最后,您可以使用Javascript's ability to generate closures创建并传递一个作为get函数的回调,该函数在调用完成时执行。然后,您将使用相同的选择器常规属性函数在调用完成时更改客户端的值。
答案 1 :(得分:0)
未经测试,但我很确定这就是您所需要的:
function onInsertComplete(data,textstatus){
$("#insert_response").html(data);
}
function doInsert(){
$("#insert_response").html("To Sek...");
var nocache = '0';
var data = { bID : $("#bID").val(), kommentar: $("#kommentar").val(), nocache: nocache };
$.get('insert.php', data, onInsertComplete);
if ($("#box[value=1]").length > 0) {
window.parent.showMessage("Video Is OK");
}
}
答案 2 :(得分:0)
这条线上的东西?
$('#result').load('ajax/test.html', function() {
alert('Load was performed.');
});