在Razor中禁用并启用事件处理程序

时间:2013-10-14 07:30:13

标签: jquery css asp.net-mvc razor

我有部分视图,用于我网站的所有其他视图。在一个页面中,我需要禁用链接的单击效果,然后在某些操作再次启用它之后。我可以使用以下代码禁用它

 $("#Link").off();

但我无法再次启用它。我尝试用$(“#Link”)。on();但它不起作用。 由于我是网络开发新手,我很难搞清楚这一点。

2 个答案:

答案 0 :(得分:0)

不要使用jQuery的off方法。它从该元素中删除所有事件处理程序(并将其抛弃)。相反,禁用该元素:

$("#Link").prop('disabled', true);

并启用它:

$("#Link").prop('disabled', false);

事件不会针对禁用的元素触发。

答案 1 :(得分:0)

您可以使用布尔标志来确定元素是否已启用:

var linkEnabled = true;

// Return false if link is not enabled
// (It will continue normal execution if it returns true)
$('#Link').on('click', function() {
    return linkEnabled;
});

// Example: disable link on click of another element, then re-enable it after some actions
$(yourElement).on('click', function() {
    linkEnabled = false; // disable link
    // Do some stuff here
    linkEnabled = true; re-enable link
});