我有一個AJAX調用這樣:Javascript或jQuery緩存我的JavaScript變量。我該如何重設?
$('a.delete_task').live('click', function() {
$this = $(this);
function deleteFunction(){
var obj = $this.parents('.task');
$(obj).addClass('highlighted');
$.post($this.attr('href'), { _method: 'delete' }, function(data) {
if ($single_item_collection == true) {
} else {
};
});
};
SSK.confirm_delete($this, deleteFunction, "task");
return false;
});
然後,我把我的deleteFunction()
,把它扔進了delete_confirmation
:
$(function(){
window.SSK = new(Class.extend({
confirm_delete: function(obj, action, label){
$(".confirm-deletion").live("click", function(){
action.call(obj);
$(this).parents("#delete-message").fadeOut();
return false;
});
},
的問題是,當我點擊它的第一次它的工作原理。當我第二次點擊它時,它通過第一個$(this)
,第二個$(this)
。同樣,當我第三次點擊另一個項目時,它會嘗試並通過所有三個項目,依此類推。不知何故,它緩存$(this)
。像那樣瘋狂。每當該方法再次通過時傳遞它。
確認刪除作爲函數創建一個彈出窗口,並將您最初單擊的鏈接的方法作爲變量obj
傳遞給它。
然後,如果你點擊確認它這樣做:
$(".confirm-deletion").live("click", function(){
action.call(obj);
$(this).parents("#delete-message").fadeOut();
return false;
});
confirm_delete是做什麼的? – Paulpro 2012-04-05 13:20:15
你可以包含更多的代碼嗎?這聽起來像你每次綁定一個新的點擊處理程序,因此每次附加一個附加的處理程序。然後點擊它會觸發所有的點擊。 – 2012-04-05 13:28:28