AddClass / RemoveClass问题
在单击A类按钮时,将A类替换为B类。单击具有BI类的按钮需要执行操作。
它正确地应用/删除了类,但由于某种原因它不会选择B类?
$(".changebut").click(function () { $("input[type=text]").fadeOut("fast", function () { $(".changebut").animate({ width: "100%" }, 200).val("Submit again").removeClass("changebut").addClass("submitbut") }) }), $(".submitbut").click(function () { alert('it worked!') })
小提琴
如果要使用事件委派而不是直接绑定,最简单的解决方案:
$(document).on('click', '.changebut', function () { $("input[type=text]").fadeOut("fast", function () { $(".changebut").animate({ width: "100%" }, 200).val("Submit again").removeClass("changebut").addClass("submitbut") }); }) $(document).on('click', '.submitbut', function () { alert('it worked!') })
最好的解决方案是直接绑定click事件并检查当前类:
$(".changebut").on('click', function () { if($(this).is('.changebut')){ $("input[type=text]").fadeOut("fast", function () { $(".changebut").animate({ width: "100%" }, 200).val("Submit again").removeClass("changebut").addClass("submitbut") }); }else{ alert('i have an other class'); } })
使用处理这两个操作的单个事件绑定。
$(".changebut,.submitbut").click(function () { if ($(this).is(".changebut")) { $("input[type=text]").fadeOut("fast", function () { $(".changebut").animate({ width: "100%" }, 200).val("Submit again").removeClass("changebut").addClass("submitbut") }); } else { alert("It worked!"); } });
使用事件委托。 还添加了分号:
$(document).on('click', ".changebut", function () { $("input[type=text]").fadeOut("fast", function () { $(".changebut").animate({ width: "100%" }, 200).val("Submit again").removeClass("changebut").addClass("submitbut"); }); }); $(document).on('click', ".submitbut", function () { alert('it worked!'); });