当我有一个事件处理程序设置为通过jQuery的选择DOM元素基于数据属性($("input[data-action='enable']")
)你怎么线了jQuery的时候选择改变
下面的代码复制我在做什么。单击该按钮时,会调用相应的callback
函数,并更新按钮的数据操作和值元素。我期待看到,因为数据操作值发生了变化,点击处理程序会切换。有没有一种方法来设置它,以便确实发生,或者我需要在点击事件之后手动设置处理程序?
<input type="button" id="btn1" data-action="enable" value="enable" />
<input type="button" id="btn2" data-action="disable" value="disable" />
$("input[data-action='enable']").on("click", function() {
var callback = function(context){
context.val("disable");
context.data("action", "disable");
};
ajaxCall(true, callback, $(this));
});
$("input[data-action='disable']").on("click", function() {
var callback = function(context){
context.val("enable");
context.data("action", "enable");
};
ajaxCall(false, callback, $(this));
});
var ajaxCall = function(state, callback, context) {
//would do an ajax call, and on success
console.log(context.data("action"));
callback(context);
};
的主要问题是,你在该特定时间结合到结果集jQuery选择,它返回jQuery的对象的数组** **的。您可能需要在ajax呼叫后解除绑定您的事件。 – Kippie