1

讓我們假設瀏覽器中呈現以下頁面的Javascript功能仍然AJAX調用後加載另一個部分

<html> 
... 
<body> 
<div id="partialContainer"> 
<script> 
function saveItems(){ 
    /* do somthing*/ 
} 
</script> 
<input type="button" id="btnTest" name="btnTest" value="Test" onclick="saveItems()"/> 
</div> 
</body> 
</html> 

後,改變使用

$("#partialContainer").html(returnedMarkup) 

saveItems功能仍停留在頁面中的「partialContainer」內容並且可以執行 當標記被替換以避免名字分解時,如何刪除此功能

+0

您可以禁用或刪除點擊輸入按鈕,你正在調用該函數 –

+1

可能重複[如何動態卸載JavaScript文件?](http://stackoverflow.com/questions/591685/how-can-i-dynamically-unload-a-javascript-file) –

+0

@JamesThorpe每個部分可能有它自己擁有腳本 女巫沒有引用到js文件 –

回答

0

var saveItems = function() {}

在你的Ajax之後,給它分配一些其他的值,最好是上面的值。

0

嘗試設置saveItemsundefined

$("#partialContainer").html(returnedMarkup); 
    if (!!saveItems && $.isFunction(saveItems)) saveItems = void 0; 
+0

我想刪除圓頂元素中使用的每個函數女巫被替換 –

0

在你的Ajax成功的回調函數,只是做:

$("#btnTest").prop("onclick", null); 

注意$.removeAttr('onclick')將在IE 6-8中失敗,所以.prop()更好。

+0

主要問題是,btnTest已經從DOM中刪除,但功能仍然存在,並可能導致功能拆分 –

+0

哦,我明白了。你試過了:「刪除saveItems;」? – Sergeon

0

你可以把你的函數對象中的文字:

var obj = { saveItems: function() { } } 

和阿賈克斯之後刪除

delete obj.saveItems 
相關問題