2015-02-06 55 views
0

我有這已經得到了,這將是有益的與當在編輯模式下,我不想出現在數據庫如何結合並在文本字段上解除綁定模糊事件

現有數據檢查模糊事件的文本字段使數據庫調用與數據庫進行檢查,因此將禁用此模糊事件。

http://jsfiddle.net/tdzfhzjy/50/

當編輯按鈕clciked,如何禁用這個模糊的事件?

我是想這樣說

var value = 'Home'; 
fillField(); 

function fillField() { 
    $("#label").val(value); 
} 



$(document).on('click', '#editbtn', function (event) { 
    $("#label").prop("readonly", true); 
    $("#label").val(value); 
    $('#label').unbind("blur"); 
}); 



$(document).on('blur', '#label', function (event) { 
alert('onblur fired'); 
}); 

可否請你讓我知道如何做到這一點?

+1

http://api.jquery.com/off/ – billyonecan 2015-02-06 15:10:16

回答

2

你的問題是模糊事件未附加到您嘗試解除綁定的特定標籤上。它附加到文檔,然後在事件的目標中搜索#label選擇器。

使用$(document).off('blur', '#label')的問題在於,由於您使用on來綁定可能會動態添加的元素,因此它將關閉所有符合條件的事件,而不僅僅是針對特定標籤。

您可以隨時創建數據屬性或全局變量來區分正在編輯的元素,而不用擔心重新綁定模糊。

這假定您有一個將其綁定到文檔而不是實際標籤的原因。哪一個更適合只有一個文本字段和按鈕。

2

這修復它...

$(document).on('click', '#editbtn', function (event) { 
    $("#label").prop("readonly", true); 
    $("#label").val(value); 
    $(document).off('blur', '#label'); 
}); 

使用.off代替.unbind,並關閉原始事件

+0

非常感謝。 – Kiran 2015-02-06 15:25:35

0

var value = 'Home'; 
 
fillField(); 
 

 
function fillField() { 
 
    $("#label").val(value); 
 
} 
 

 

 

 
$(document).on('click', '#editbtn', function (event) { 
 
    $("#label").prop("readonly", true); 
 
    $("#label").val(value); 
 
    $('#label').unbind("blur"); 
 
}); 
 

 

 

 
$('#label').on('blur', function (event) { 
 
alert('onblur fired'); 
 
});