Опубликовано Оставить комментарий

выполняем инлайн скрипты с ajax запроса

автор данного кода не я, но многим прегодиться. сам код найден на стековерфлоу.

иногда возникает следующая ситуация: после аякс запроса мы выдергиваем часть хтмл кода и внедряем его в текущую страницу. примерно это выглядит следующим образом

$.ajax({
    type:'post',
    data:'var1='+var1,
    url:'test',
    success:function (data) 
    {
        var new_data = $data.find('#container').html();
        $("#ajax_response").html(new_data);
    }
});

чтобы выполнить инлайн скрипты с страницы test.php достаточно, после

$("#ajax_response").html(new_data);

добавить

$data.filter('script').each(function(){
    $.globalEval(this.text || this.textContent || this.innerHTML || '');
});

написание валидного кода, который будет работать и после аякс запроса

тут я могу дать 2 рекомендации:

первая. $(document).ready(); следует использовать следующим образом. чтобы после вызова аякс запроса можно было дернуть функцию OnloadFunction(), тк $(document).ready() уже не дернуть

function OnloadFunction ()
{
    alert("test");
}
$(document).ready(OnloadFunction);

вторая. желательно, чтобы функции на события в инлайн скриптах вешались через jquery функцию .ON() https://api.jquery.com/on/ . в ином случае, события после аякс функции работать не будут

$( "#dataTable tbody tr" ).on( "click", function() {
  console.log( $( this ).text() );
});

Добавить комментарий

Ваш e-mail не будет опубликован.