Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery防止在ajax加载页面上执行脚本_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 使用jQuery防止在ajax加载页面上执行脚本

Javascript 使用jQuery防止在ajax加载页面上执行脚本,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图使用load()函数加载页面,问题是加载时正在执行该页面上的javascript代码。我用这个: $('#itemid').load('thepage.php #selector', function() { MY CODE HERE }); 如何防止javascript代码被执行并仅加载所需的HTML部分?使用.get()或.post()并处理返回的内容。在将返回的代码附加到页面之前,请先从中提取脚本标记,或者仅提取所需的代码: $.post('thepage.php', {

我试图使用load()函数加载页面,问题是加载时正在执行该页面上的javascript代码。我用这个:

$('#itemid').load('thepage.php #selector', function() {
     MY CODE HERE
});
如何防止javascript代码被执行并仅加载所需的HTML部分?

使用
.get()
.post()
并处理返回的内容。在将返回的代码附加到页面之前,请先从中提取脚本标记,或者仅提取所需的代码:

$.post('thepage.php', {
    data: myData
}, function(data) {
    var myHTML = $(data).not('script');
    $('#itemid').html(myHTML);
});
或:

演示:


注意:正如您所提到的,使用带有load的选择器应该完成相同的任务,正如您在示例中看到的那样。因此,如果它不能以这种方式工作,则会发生其他事情。

不确定我是否正确理解了这个问题,但您可以删除javascript,只保留html。我假设您希望js绑定发生在新页面上。因此,当您在回调中加载新页面时,可以调用应用所需绑定的函数

function applyAfterAjax(){
  $(this).find('element').click(function(){alert('clicked');});
}
$('#itemid').load('thepage.php #selector',applyAfterAjax);

我想这正是我所需要的,我现在就试试,并报告结果。我忘了提到我并没有完全使用jQuery,但我使用的是Zepto脚本(对于这些函数,它应该以同样的方式工作)。我认为这是一个bug,因为在阅读我读过的load()函数的jQuery文档时,只有在使用load时才执行脚本,而不使用加载页面中的选择器。。。但是在Zepto中,它不是这样工作的是的,选择器应该工作,就像我的JSFIDLE示例中一样。我不熟悉Zepto,但从它听起来的语法是一样的,但并不是所有的功能都保证是相同的。他们最关心的是成为一个小图书馆。这意味着他们放弃了一些功能来实现这一点。
function applyAfterAjax(){
  $(this).find('element').click(function(){alert('clicked');});
}
$('#itemid').load('thepage.php #selector',applyAfterAjax);