我有一個通過php加載的頁面。該頁面中的一個元素是一個<li>
,它有一個onclick事件。例如。 <li onclick="dynamiccall('1');">blah</li>
。點擊該元素後,會發出ajax調用,並將html輸出插入到頁面中,該標記的外觀如下<li onclick="getubilling('1');">blah</li>
。Ajax請求生成可能用於後續Ajax請求的html。輔助請求返回[object mouseevent]而不是生成的值
使用onclick函數getubilling('1')單擊生成的元素後,ajax調用被髮送到php腳本。第二個getubilling函數中的查詢參數顯示爲1,但在傳遞給ajax調用時,它顯示爲[object mouseevent]。這是爲什麼發生?
的dynamiccall()函數定義爲在ajax.js文件遵循包含在頁面:
function dynamiccall(uid){
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
HandleResponse10(xmlHttp.responseText);
console.log(uid);
var holder = uid;
document.getElementById('orgcinfo').innerHTML = '<ul id="b_action_lst2"><li onclick="getuprofile('+holder+')" name="uprofile">Account Settings</li><li onclick="getubilling('+holder+')" name="billing">Billing</li><li onclick="getuchpass('+holder+')" name="chpass">Change Password</li><li onclick="getuadduser('+holder+')" name="adduser">Add User</li></ul>';
var ullist = document.getElementById('b_action_lst2');
var links = ullist.getElementsByTagName('li');
for(var i=0;i<links.length;i++){
var link = links[i];
if(link.getAttribute('name')=="uprofile"){
link.onclick = getuprofile;
}
if(link.getAttribute('name')=="chpass"){
link.onclick = getuchpass;
}
if(link.getAttribute('name')=="billing"){
link.onclick = getubilling;
}
}
//dothis();
}
}
xmlHttp.open("GET", "ajax.php?&p=anotherreq&uid="+uid+"&n="+Math.random(), true);
xmlHttp.send(null);
}
function getubilling(uid){
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
HandleResponse10(xmlHttp.responseText);
console.log(uid);
var holder = uid;
document.getElementById('orgcinfo').innerHTML = '<ul id="b_action_lst2"><li onclick="getuprofile('+holder+')" name="uprofile">Account Settings</li><li onclick="getubilling('+holder+')" name="billing">Billing</li><li onclick="getuchpass('+holder+')" name="chpass">Change Password</li><li onclick="getuadduser('+holder+')" name="adduser">Add User</li></ul>';
var ullist = document.getElementById('b_action_lst2');
var links = ullist.getElementsByTagName('li');
for(var i=0;i<links.length;i++){
var link = links[i];
if(link.getAttribute('name')=="uprofile"){
link.onclick = getuprofile;
}
if(link.getAttribute('name')=="chpass"){
link.onclick = getuchpass;
}
if(link.getAttribute('name')=="billing"){
link.onclick = getubilling;
}
}
//dothis();
}
}
xmlHttp.open("GET", "ajax.php?&p=gubilling&uid="+uid+"&n="+Math.random(), true);
xmlHttp.send(null);
}
甲請求發出到http://www.domain.com/ajax.php?&p=gubilling&uid=1&n=2212.32313
的問題是,所得到的UID變量時在瀏覽器結果呈現[object mouseevent],而不是文字值1.
我跟着這example唯一的區別,我可以看到的是,該示例不提供 將動態元素傳遞給我所在的dynamicEvent函數。
我錯過了什麼?任何建議表示讚賞。
幾個問題:你爲什麼要使用內聯JS,而你爲什麼不使用jQuery中提供的'.ajax'方法,因爲您已將問題標記爲這樣? – Terry