如何在文本字段上绑定和取消绑定模糊事件

时间:2015-02-06 15:06:11

标签: jquery

我有一个文本字段,它有一个模糊事件,可用于检查数据库中存在的现有数据

当它处于编辑模式时,我不想进行数据库调用以检查数据库,因此将禁用此模糊事件。

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

当编辑按钮时,如何禁用此模糊事件?

我是这样尝试的

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');
});

你能告诉我怎么做吗??

3 个答案:

答案 0 :(得分:2)

这解决了它......

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

使用.off而不是.unbind,并关闭原始事件

答案 1 :(得分:2)

您的问题是,模糊事件未附加到您尝试解除绑定的特定标签上。它附加到文档然后在事件的目标中搜索#label选择器。

使用$(document).off('blur', '#label')的问题在于,由于您正在使用绑定可能动态添加的元素,因此它将关闭所有符合条件的事件,而不仅仅是针对特定标签。< / p>

您始终可以创建数据属性或全局变量来区分正在编辑的元素,而不必担心重新绑定模糊。

这假设您有理由将其绑定到文档而不是实际标签。这对于单个文本字段和按钮来说会更好。

答案 2 :(得分:0)

&#13;
&#13;
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');
});
&#13;
&#13;
&#13;