当我通过 jQuery 设置事件处理程序时,根据数据属性 ( $("input[data-action='enable']")
)选择 DOM 元素
下面的代码重复了我正在做的事情。单击按钮时,将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);
};