有许多引导选项卡,每个选项卡都有带有大量“td”元素的示例表。我们在活动选项卡的 td 上绑定一个点击事件。为了性能,我们希望每次用户更改选项卡时取消绑定前一个选项卡的点击事件。
这是演示:http: //jsfiddle.net/hyTCy/
(“显示”事件是在所有转换完成之后)
$('a[data-toggle="tab"]').on('shown', function (e) {
var newt = $(e.target).attr("href"),
prevt = $(e.relatedTarget).attr("href");
console.log("new tab: " + newt) // activated tab
console.log("prev tab: " + prevt); // previous tab
$(newt + " tbody").on("click", "td", function (e) {
console.log("click");
});
var validate = function () {
console.log("prev click ok");
};
$(prevt + " tbody").off("click", "td", validate);
});
正常情况下,如果你访问demo,点击“profile”标签,然后点击“home”,控制台应该会显示一条消息“prev click ok”,这样我们就知道上一个标签中的事件已经解除绑定了。
为什么功能验证不能正常工作?...谢谢!