标签内的以下代码给出了错误:“预期的对象”。
<!-- JQuery/AJAX-->
<script type="text/javascript">
try {
$(document).ready(function(){
$("p").load(function(){
MakeRequest('divElectionCategory','ulElectionCategory','SELECT * FROM electioncategorymaster', 'UnOrderedList');
});
});
}
catch(e)
{
alert(e.message);
}
</script>
MakeRequest函数驻留在一个单独的.js文件中,我在上面给出的代码之前包含了该文件。
它指的是哪个对象?
编辑: MakeRequest函数
function MakeRequest(DivName, ControlName, SqlQuery, ControlType)
{
var xmlHttp = getXMLHttp();
var strUrl = "";
if (ControlType = 'DropDown')
strUrl = "../phplibraries/filldropdown.php?DivName=" + DivName + "&DropDownControlName=" + ControlName + "&SqlQuery=" + SqlQuery;
else
strUrl = "../phplibraries/createelectioncategorymenu.php?DivName=" + DivName + "&ulName=" + ControlName + "&SqlQuery=" + SqlQuery;
alert(strUrl);
try
{
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState == 4)
{
HandleResponse(xmlHttp.responseText, DivName);
}
}
xmlHttp.open("GET", strUrl, true);
xmlHttp.send(null);
}
catch(err)
{
alert(err);
}
}
我知道上面存在一个很大的安全问题,但请暂时忽略它。
答案 0 :(得分:1)
您无法以这种方式致电load()
。
load
的第一个参数采用的是URL而不是函数。也许你的意思是:
$("p").load( MakeRequest('divElectionCategory','ulElectionCategory','SELECT * FROM electioncategorymaster', 'UnOrderedList') );
假设MakeRequest
返回格式化的URL。
修改强>
.load()
当用于DOM元素并且第一个参数是函数时,jQuery假定您附加了一个事件处理程序。但是,p
没有加载事件。如果你想等待一切加载,试试这个(它不必在DOM准备好):
$(window).load( function(){
MakeRequest('divElectionCategory','ulElectionCategory','SELECT * FROM electioncategorymaster', 'UnOrderedList')
});
MakeRequest重写
function MakeRequest(DivName, ControlName, SqlQuery, ControlType)
{
var strUrl = "", params = {};
if (ControlType = 'DropDown'){
strUrl = "../phplibraries/filldropdown.php";
params = {
DivName: DivName,
DropDownControlName: ControlName,
SqlQuery: SqlQuery
}
} else {
strUrl = "../phplibraries/createelectioncategorymenu.php";
params = {
DivName: DivName,
ulName: ControlName,
SqlQuery: SqlQuery
}
}
alert(strUrl);
$.get(strUrl, params, function(data){
HandleResponse(data, DivName);
});
}