AJAX:Javascript函数在使用AJAX加载内容后不起作用

AJAX:Javascript函数在使用AJAX加载内容后不起作用,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,目前,我遇到的问题是,在使用ajax加载第一个内容后,javascript功能无法正常工作。我尝试了其他解决方案,但大多数都是jquery格式。我的是javascript格式。我尝试创建一个简单的警报函数来测试函数是否被调用。但是我最终得到了这个错误未捕获引用错误:showArtistDetails未定义实际上函数已经在我的头标签顶部定义,但它仍然显示未定义。我能知道有什么方法可以解决这个错误吗 这是ajax代码: function showArtistDetails(str) { if

目前,我遇到的问题是,在使用ajax加载第一个内容后,javascript功能无法正常工作。我尝试了其他解决方案,但大多数都是jquery格式。我的是javascript格式。我尝试创建一个简单的警报函数来测试函数是否被调用。但是我最终得到了这个错误
未捕获引用错误:showArtistDetails未定义
实际上函数已经在我的头标签顶部定义,但它仍然显示未定义。我能知道有什么方法可以解决这个错误吗

这是ajax代码:

function showArtistDetails(str) {
    if (str == "") {
        alert("hi");
        document.getElementById("artist").innerHTML = "";
        return;
    } else { 
        if (window.XMLHttpRequest) {
                        alert("hi1");

            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
                        alert("hi2");

            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("artist").innerHTML = xmlhttp.responseText;
                            alert("hi3");

            }
        };
        xmlhttp.open("GET","getArtist.php?title="+str,true);
                    alert("hi4");

        xmlhttp.send();
                    alert("hi5");

    }
}
这是php代码:

    echo "<td onclick=\"showArtistDetails(this.value)\">" . $row['CDTitle'] . "</td>";
echo”“$行['CDTitle']。"";

在这个问题上我真的需要别人的帮助。大多数用户对jquery函数都有相同的问题,但我的问题不同。先谢谢你。非常感谢您的帮助。

您的代码似乎没有bug。我找不到问题,请检查下面的代码
尽量放在页面底部
并确保使用type=“text/javascript”


芬兹
顶端扇子

ChamberClassic Rock Classic喜剧当代民间乡村文化死亡金属易听电子音乐JazzElectronicaFolkFree风格一般民间摇滚音乐JazzJungle/Drum'N Bass键盘交替拉丁拉丁说唱乐Louimedieval MiscellaneousMob HitsNew Agency Wavelolds另类流行乐Folkpsychedeliacraprap/R&BReggaeRnBRockAmbientRock/PopRockNRollRoots ReggaeSoft Rocksoul音乐曲目技术传统民间音乐传统PopTrip Hop先锋派世界古典歌曲BeatBalladBlueglassbluse

函数showMusic(str){ 如果(str==“”){ document.getElementById(“相册”).innerHTML=“”; 返回; }否则{ if(window.XMLHttpRequest){ //IE7+、Firefox、Chrome、Opera、Safari的代码 xmlhttp=新的XMLHttpRequest(); }否则{ //IE6、IE5的代码 xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”); } xmlhttp.onreadystatechange=函数(){ if(xmlhttp.readyState==4&&xmlhttp.status==200){ document.getElementById(“albums”).innerHTML=xmlhttp.responseText; } }; open(“GET”、“getAlbums.php?q=“+str,true”); xmlhttp.send(); } }
PHP脚本

<?php
    echo "<pre>";
    print_r($_REQUEST);
    echo "</pre>";
    exit;
?>

您说:“函数已经在我的头标签顶部定义了”

我在head标签中只看到一个命名函数:showMusic(str)


showArtistDetails是在哪里定义的?

由于这纯粹是一个javascript问题,我建议编辑您的帖子,以代码块的形式显示呈现的html/js,这将帮助其他人帮助您解决问题对不起,您理解错了,我们不需要看php,这是一个js问题。在您的web浏览器中,右键单击“选择”“查看源代码”并复制-将输出粘贴到您的问题中我已按您所说的复制粘贴源代码。但它没有显示最新的代码。它只显示了以前的功能代码。仍然是说未定义的功能确保您有最新版本的浏览器,java脚本不能为浏览器禁用..不,我使用的是最新版本的chrome。。如果在第一个ajax内容中尝试相同的代码,它可以工作,但在第二个ajax内容中它不工作,由您直接加载html,或者您使用ajax在其他页面中加载此html内容?它仍然是一样的。。。相同的未定义函数现在我看到您的php剪报。但是我不认为你可以通过Ajax将新的javascript代码注入html页面如果你将
onclick=\“showArtistDetails(this.value)\”
onclick=\“alert(this)\”
交换会发生什么?我得到
[object-HTMLTableCellElement]
确定。所以我们可以实际地注入javascript代码:-),然后我怀疑它可能与作用域有关。我仍然看不到对php脚本的ajax调用是从哪里完成的。它是否与定义showArtistDetails函数的html文件位于同一个html文件中?
<?php
    echo "<pre>";
    print_r($_REQUEST);
    echo "</pre>";
    exit;
?>