jQuery load()函数插入未解释的代码


jQuery load() function inserts non-interpreted code

我试图使用jquery将php文件中的一段代码放入我的index.php文件中。我使用jQuery的函数load()来实现这一点,对此我没有任何问题。

问题是这段代码没有得到正确的解释。在本例中,我导入了一个span,为了查看这个跨度是否正确导入到index.php中,我使用了jQuery click函数

我想要导入的php代码

//myText.php
<?php
    echo '<span>theSpan</span>';
?>

然后jQuery代码

//scripts.js
$(document).ready(function(){
    $(".my-php").load("myText.php");
    $("span").click(function(){
        alert( "Success : it's a span !" );
    });
});

index.php 的php

//index.php
<body>
    <div class="my-php">
    </div>
</body>

因此,当我点击phpdiv中的span时,我应该会看到"Success : it's a span"。但什么也没发生。跨度在这里,文本为'theSpan',但当我点击它时,什么也没发生。

我试着解决了这个问题,但这是一个非常奇怪的行为。我将jQuery代码更改为:

$(document).ready(function(){
    var StrPhp = 'test';
    alert("1 - StrPhp : " +StrPhp); //Return 'test'
    $(".my-php").load("myBets.php", function(str){
        StrPhp = str;
        alert("2 - StrPhp : " +StrPhp); //Return '<span>theSpan</span>'
    });
    $(".my-php").html(StrPhp);
});

因此,我用'test'初始化一个变量StrPhp。我试图用StrPhp = str捕获load function的回调。然后我尝试用html function放入我的phpdiv。它不起作用。跨度在这里,文本为'theSpan',但当我单击时,什么都没有。

但是!!

$(document).ready(function(){
    var StrPhp = 'test';
    alert("1 - StrPhp : " +StrPhp); //Return 'test'
    $(".my-php").load("myBets.php", function(str){
        StrPhp = str;
        alert("2 - StrPhp : " +StrPhp); //Return '<span>theSpan</span>'
    });
    alert("3 - StrPhp : " +StrPhp); //Return 'test'
    alert("4 - StrPhp : " +StrPhp); //Return '<span>theSpan</span>' !!!
    $(".my-php").html(StrPhp);
});

html() function之前有两个警报,它可以工作!span进入我的phpdiv,并被解释。我的意思是,当我点击它时,我可以看到"Success : it's a span"。如果没有这些警报,jQuery就不会解释跨度,当我单击时,什么也不会发生。

显然,这并没有解决,因为每次遇到这个问题时,我都不想使用警报。

所以,如果有人能帮助我,我将不胜感激!

使用完整的参数:

$(document).ready(function(){
   $(".my-php").load("myText.php",function () {
     $("span").click(function(){
       alert( "Success : it's a span !" );
     })
   });
});

你可以像这个一样使用jQuery.on

$(document).ready(function(){
    $(".my-php").load("myText.php");
    $(".my-php").on('click','span',function(){
                    alert( "Success : it's a span !" );
                });
});