我有一个通过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