繁体   English   中英

调用onclick时Javascript没有运行

[英]Javascript not running when onclick is called

其他onclicks一般看起来很好,这个特殊的onclick将无法运行,我想不出为什么。

HTML(来自PHP回声)

<div class=\"f_love_it\">
<button id=\"f_love_it_{$type}_{$currant_id}\" class=\"btn btn-primary\" onclick=\"love_it({$_SESSION['user_id']},{$currant_id},{$type},{$post["user_id"]})\">I Love It!
</button></div>

纯HTML

<button id="f_love_it_comment_16" class="btn btn-primary" onclick="love_it(4,16,comment,1)">I Love It!</button>

剧本

function love_it(lover_id,loved_id,post_type,poster_id)
{
    alert("You moose");
    var xmlhttp = new XMLHttpRequest();
    var get_request = "/lib/love.php?lover_id="+lover_id+"&loved_id="+loved_id+"&type="+post_type+"&poster_id="+poster_id;
    var element_id = 'f_love_it_'+post_type+'_'+loved_id;

    document.getElementById(element_id).innerHTML = 'Yup';

    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById(element_id).innerHTML = xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET", get_request, true);
    xmlhttp.send();
}
onclick=\"love_it({$_SESSION['user_id']},{$currant_id},{$type},{$post["user_id"]})\"

这个片段似乎包含一些PHP。 检查HTML中的输出,因为它似乎不正确。 你混合单引号和双引号,你拼写currant_id ,我想应该是current_id ,除非你想要识别一个浆果。

通常,如果您的Javascript没有运行,请检查浏览器中的Javascript并跟踪PHP代码的任何错误。 这比评估PHP代码和猜测错误要容易得多。 您的浏览器可能有一个控制台(按F12),显示Javascript运行时错误。

[编辑]

看到你添加的输出后,我得出结论,需要引用post_type

love_it(4,16,comment,1)

应该

love_it(4,16,'comment',1)

所以代码应该是:

<button id=\"f_love_it_{$type}_{$currant_id}\" class=\"btn btn-primary\" onclick=\"love_it({$_SESSION['user_id']},{$currant_id},'{$type}',{$post["user_id"]})\">I Love It!

注释是变量还是实际的字符串?

onclick="love_it(4,16,comment,1)"

如果它是一个变量它是正确的,如果它是一个字符串,那么你缺少引号使它成为一个字符串。

onclick="love_it(4,16,'comment',1)"

现在是“评论”中有一个“或”,它会失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM