0
大家好!
我有一個問題,我不知道如何解決它!JS事件。只有一個事件處理函數被調用?
我有一個簡單的HTML頁面的按鈕:
<input type = "submit" value = "ok" onclick="f1()"/>
我也有一個腳本,在此頁上:
<script>
function f2()
{
var firstBtn = document.createElement("button");
firstBtn.appendChild(document.createTextNode("firstBtn"));
document.body.appendChild(firstBtn);
var xmlhttp = CreateRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var response = xmlhttp.responseText;
document.body.innerHTML += response;
}
}
firstBtn.onclick = function()
{
alert("inside f2 onclick");
xmlhttp.open("GET","test.php",true);
xmlhttp.send();
}
}
function f3()
{
var secondBtn = document.createElement("button");
secondBtn.appendChild(document.createTextNode("secondBtn"));
document.body.appendChild(secondBtn);
var xmlhttp = CreateRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var response = xmlhttp.responseText;
document.body.innerHTML += response;
}
}
secondBtn.onclick = function()
{
alert("inside f3 onclick");
xmlhttp.open("GET","test.php",true);
xmlhttp.send();
}
}
function f1()
{
f2();
f3();
}
function CreateRequest()
{
var xmlhttp;
if (window.XMLHttpRequest)
xmlhttp=new XMLHttpRequest();// code for IE7+, Firefox, Chrome, Opera, Safari
else
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");// code for IE6, IE5
return xmlhttp;
}
</script>
所以現在,當我點擊一個按鈕(firstBtn或secondBtn),另一個不響應點擊事件!有人知道爲什麼嗎?
請參閱螢火蟲控制檯上的錯誤。 – 2013-05-04 10:15:47
似乎是點擊處理程序中xmlhttp變量的範圍問題。 – Ihsan 2013-05-04 10:17:44
你想做什麼?這兩個按鈕是否需要啓動sam e功能? – Cherniv 2013-05-04 10:28:56