我正在尝试使用load()函数加载页面,问题是加载时正在执行该页面上的javascript代码。我用这个:
$('#itemid').load('thepage.php #selector', function() {
MY CODE HERE
});
如何防止javascript代码被执行并仅加载我想要的HTML部分?
答案 0 :(得分:3)
使用.get()
或.post()
并处理您的回复。在将脚本标签附加到页面之前将其从您返回的代码中拉出来,或者只需提取所需的代码:
$.post('thepage.php', {
data: myData
}, function(data) {
var myHTML = $(data).not('script');
$('#itemid').html(myHTML);
});
或者:
$.post('thepage.php', {
data: myData
}, function(data) {
var myHTML = $(data).filter('#selector');
$('#itemid').html(myHTML);
});
演示:http://jsfiddle.net/jtbowden/wpNBM/
注意:正如您所提到的,使用带有加载的选择器应该完成相同的操作,如示例中所示。所以,如果它没有以这种方式工作,那么还会发生其他事情。
答案 1 :(得分:0)
不确定我是否已正确理解问题,但您可以删除javascript并只使用html。我假设您希望js绑定在新页面上发生。因此,当您加载新页面时,在回调中,您可以调用应用所需绑定的函数。
function applyAfterAjax(){
$(this).find('element').click(function(){alert('clicked');});
}
$('#itemid').load('thepage.php #selector',applyAfterAjax);