答案 0 :(得分:2)
你最好的选择可能是使用旗帜;或者,您可以添加和删除处理程序。或者可能还有其他15种方式。 : - )
var link = /* ...get reference to link, e.g. $('the_links_id') or whatever */;
link.observe('click', function(event) {
if (this.readAttribute("data-disabled")) {
event.stop();
}
});
// Disabling the link:
link.setAttribute("data-disabled", 1);
// Enabling the link:
link.removeAttribute("data-disabled");
使用名为data-disabled
的属性(使用data-
前缀与HTML5兼容),如果存在,则truthy禁用该链接。
如果您不介意在元素实例上粘贴属性,则可以不使用属性来执行此操作:
var link = /* ...get reference to link, e.g. $('the_links_id') or whatever */;
link.observe('click', function(event) {
if (this.disabled) {
event.stop();
}
});
// Disabling the link:
link.disabled = true;
// Enabling the link:
link.disabled = false;
在元素实例上放置属性适用于所有流行的浏览器,但有些人不喜欢它,因此使用上面的属性。
// General purpose "stop the event" handler
function stopEvent(event) {
event.stop();
}
// Disabling the link:
link.observe('click', stopEvent);
// Enabling the link:
link.stopObserving('click', stopEvent);