3 回答

TA貢獻1864條經驗 獲得超2個贊
當load()與片段選擇器一起使用時,腳本元素將在添加片段之前被剝離,因此腳本將不會執行。
使用不帶后綴選擇器表達式的URL調用.load()時,將在刪除腳本之前將內容傳遞給.html()。這將在腳本塊被丟棄之前執行它們。但是,如果使用附加到URL的選擇器表達式來調用.load(),則在更新DOM之前會刪除腳本,因此不會執行這些腳本。兩種情況的示例如下所示:
所以嘗試
$.get('partial.html', function(result){
$result = $(result);
$result.find('#content').appendTo('#new_content');
$result.find('script').appendTo('#new_content');
}, 'html');

TA貢獻1799條經驗 獲得超6個贊
如果知道要執行的腳本是什么,則可以在ajax響應之外的其他地方定義腳本,然后從回調中調用它。所以代替:
$('#new_content').load(url+' #content > *',function() {alert('returned');});
您可以使用
$('#new_content').load(url+' #content > *',function() {my_function(my_param);});

TA貢獻1725條經驗 獲得超8個贊
這個代碼怎么樣
$('#new_content').append($('<script>').html(source));
或者您可以簡單地將JavaScript內容移動到單獨的文件中,然后使用
$.getScript("url to js file");
或只是使用,
eval(source);
添加回答
舉報