如何使用原型观察启用/禁用链接

时间:2010-05-11 13:42:07

标签: prototypejs

正如此链接Disable link with the prototype observe method

中所述

如果使用observe方法禁用链接,如何启用它。

谢谢

1 个答案:

答案 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);
相关问题