javascript onclick功能不起作用

时间:2012-05-25 19:39:44

标签: php javascript

所以我从另一个可以工作的函数中调整了这个代码,并在同一页面上使用。我不知道是否可以做任何事情,所以我想我会提到它,而且两者都有id =“替换”,我不知道它是否会干扰。

无论如何,调用该函数的代码是:

 if (mysql_num_rows($LIKE) != 0)

{

  echo "
        <td id=\"replace\" style=\"text-align:left\">".$like." Likes -- <a style=\"color:#234904\" onmouseover=\"this.style.color='#6666CC'\" onmouseout=\"this.style.color='#234904'\" id=\"" . $POST->id . "\" onclick=\"likePost(this.id)\" name=\"like\">Like This Post</td>
        ";
}

javascript函数定义如下:

var xmlHttp;

function likePost(x)
{ 
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request");
 return;
 }

var pid = document.getElementById(x).id;
var url="forum-like.php";
url+="?pid="+pid;
url+="&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

当我点击应该调用该函数的内容时,没有任何反应。如果我使用js函数中调用的php页面执行脚本,虽然工作正常...我不知道我是否遗漏了任何东西或者有什么问题但是...我也知道$ POST-&gt; id部分确实调用了正确的ID ...希望这是足够的信息,否则让我知道,我会编辑更多:D感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

var pid = document.getElementById(x).id

您已经传递了id,所以只需使用

即可
var pid = id;

如果您仍然遇到问题,请使用firebug或浏览器的开发者工具来获取实际的javascript错误。

答案 1 :(得分:0)

看起来你正在将this.id传递给函数,但后来尝试使用那个(x)然后再次查找id,好像那是一个DOM对象。

如果你保留php代码,你可以改变你的javascript方法说:

url+="?pid="+x;

你可以摆脱:(因为你已经传递了id并且不需要检索它)

var pid = document.getElementById(x).id;

希望对你有用!