Php jquery响应中的javascript函数不工作

Php jquery响应中的javascript函数不工作,php,javascript,jquery,Php,Javascript,Jquery,可能重复: 内部响应我有下面的html代码和简单的JavaScript函数 <label onclick="popup()"> clickme </label> <script> function popup() { alert("hello"); } </script> 点击我 函数popup() { 警惕(“你好”); } 这里,这个popup()函数不起作用,请帮助我。问题是您希望执行ajax响应中包含的Javascript。事实并

可能重复:

内部响应我有下面的html代码和简单的JavaScript函数

<label onclick="popup()"> clickme </label>
<script>
function popup()
{
  alert("hello");
}
</script>
点击我
函数popup()
{
警惕(“你好”);
}

这里,这个popup()函数不起作用,请帮助我。

问题是您希望执行ajax响应中包含的Javascript。事实并非如此,浏览器不会执行ajax响应中包含的任何Javascript。也许可以尝试解析Javascript并以某种方式执行它,例如
eval()
,但这会很糟糕,也不是一个好主意。使用<代码> Value>(代码)>您还必须考虑它只接受有效的JavaScript,因此您不能仅仅传递您的响应,因为它包含一些HTML。 一个可能的解决方案是在页面或外部Javascript文件中已经定义了
popup()
函数,并在将HTML添加到DOM后分配单击处理程序

例如:

function popup()
{
    alert(this.id);
}


document.getElementById("alldata").innerHTML = response;
document.getElementById("myNewLabel").onclick = popup;

问题是您希望执行ajax响应中包含的Javascript。事实并非如此,浏览器不会执行ajax响应中包含的任何Javascript。也许可以尝试解析Javascript并以某种方式执行它,例如
eval()
,但这会很糟糕,也不是一个好主意。使用<代码> Value>(代码)>您还必须考虑它只接受有效的JavaScript,因此您不能仅仅传递您的响应,因为它包含一些HTML。 一个可能的解决方案是在页面或外部Javascript文件中已经定义了
popup()
函数,并在将HTML添加到DOM后分配单击处理程序

例如:

function popup()
{
    alert(this.id);
}


document.getElementById("alldata").innerHTML = response;
document.getElementById("myNewLabel").onclick = popup;

将该字符串隐藏在页面中,并在成功时显示它。比如:

<label onclick="popup()" id="mylable" style="display:none"> clickme </label>
<script>
function popup()
{
  alert("hello");
}
</script>


var url = "showpdf.php";
$.ajax({
    type: "post",
    url: url,
    data:    {academic:academic,uni:uni,course:course,lan:lan,sem:sem,subject:subject,type:type,clz:clz},
    success: function(response)
    {
       // alert(response);
        $("#mylable").show();

    }
});
点击我
函数popup()
{
警惕(“你好”);
}
var url=“showpdf.php”;
$.ajax({
类型:“post”,
url:url,
数据:{academic:academic,uni:uni,course:course,lan:lan,sem:sem,subject:subject,type:type,clz:clz},
成功:功能(响应)
{
//警报(响应);
$(“#mylable”).show();
}
});

使用DOM的更好方法。请告诉我上述代码是否适用于您。

将该字符串隐藏在页面中,并在成功时显示它。比如:

<label onclick="popup()" id="mylable" style="display:none"> clickme </label>
<script>
function popup()
{
  alert("hello");
}
</script>


var url = "showpdf.php";
$.ajax({
    type: "post",
    url: url,
    data:    {academic:academic,uni:uni,course:course,lan:lan,sem:sem,subject:subject,type:type,clz:clz},
    success: function(response)
    {
       // alert(response);
        $("#mylable").show();

    }
});
点击我
函数popup()
{
警惕(“你好”);
}
var url=“showpdf.php”;
$.ajax({
类型:“post”,
url:url,
数据:{academic:academic,uni:uni,course:course,lan:lan,sem:sem,subject:subject,type:type,clz:clz},
成功:功能(响应)
{
//警报(响应);
$(“#mylable”).show();
}
});

使用DOM的更好方法。让我知道上面的代码是否适合您。

看看:是的,我也尝试过这个评估(document.getElementById(“alldata”).innerHTML=response);但是它仍然不工作:(不,我没有得到任何错误…但是javascript函数不工作,即使我使用eval
eval()
无法处理原始响应,因为它包含HTML,eval将只接受Javascript内容。但作为响应,我有HTML和Javascript代码,所以为什么我的Javascript函数不起作用?请看:是的,我也尝试了这个eval(document.getElementById(“alldata”).innerHTML=response);但它仍然不起作用:(不,我没有收到任何错误…但是,即使我使用eval
eval(),javascript函数也无法工作)
无法处理原始响应,因为它包含HTML,eval将只接受Javascript内容。但作为响应,我同时拥有HTML和Javascript代码,因此为什么我的Javascript函数无法工作?嘿,但是单击我的函数popup(){alert(“hello”)}这段代码是我在另一个文件中编写的,所以$(“#mylable”).show();在jquery函数中不起作用将HTML代码保留在调用ajax函数的同一页面表单上,并在showpdf.php文件中回显类似“click”/“notclick”的内容。如果是click$(“#mylable”).show(),请在success函数中检查响应。我不明白你在说什么,但clickme函数popup(){alert(“hello”)}我在另一个文件中编写了这段代码,因此$(“#mylable”).show()在jquery函数中不起作用。请将HTML代码保留在调用ajax函数的同一页面表单上,并在showpdf.php文件中回显类似“click”/“notclick”的内容。如果是click$(“#mylable”).show()则在success函数中检查响应.我不明白你说的是什么,我实现了和你说的一样的东西,但我遇到了一个问题,我想在弹出函数中传递标签的id,那么怎么做呢?我试过像document.getElementById(“myNewLabel”).onclick=popup(this.id);但它不起作用:(您不需要传递ID,只需在弹出函数中使用
this.ID
。它正在工作:)谢谢CodeHii先生,我实现了与您所说的相同的事情,但我遇到了一个问题,我想在弹出函数中传递标签的ID,那么如何做呢?我尝试了像document.getElementById(“myNewLabel”)。onclick=popup(this.ID);但它不起作用:(您不需要传递ID,只需在弹出函数中使用
this.ID
。它起作用了:)谢谢您的代码