Функция jQuery load () вставляет не интерпретированный код

Я пытаюсь поместить часть кода из php-файла в мой файл index.php, используя jquery.
Я использую функцию load() JQuery, чтобы сделать это, и у меня нет проблем с этим.

Проблема в том, что этот фрагмент кода не интерпретируется должным образом. В этом примере я импортирую 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 !" );
});

});

Php index.php

//index.php

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

Итак, когда я нажимаю на промежуток, который находится внутри div my-php, я должен увидеть "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);

});

Итак, я инициализирую переменную StrPhp с 'test',
Я пытаюсь поймать обратный вызов load function с StrPhp = str,
А потом я пытаюсь вставить my-php div с html function,
Это не сработало. Размах здесь с текстом '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, оно работает !
Интервал в my-php div и интерпретируется. Я имею в виду, когда я нажимаю на нее, я вижу "Success : it's a span",
Без этих предупреждений диапазон не интерпретируется jQuery, и когда я нажимаю, ничего не происходит.

Очевидно, это не исправлено, потому что я не хочу использовать оповещения каждый раз, когда у меня возникает эта проблема.

Так что если кто-то может мне помочь, это будет оценено!

0

Решение

Использовать полный параметр:

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

Другие решения

Ты можешь использовать jQuery.on как это

$(document).ready(function(){

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

});
0