2016-09-16 88 views
2

其状态,我有一个button这样的:点击一个按钮,检测的jQuery

<a class="btn btn-sm btn-danger employee" data-emp_id="23" href="javascript:void(0)" disabled>Resign</a> 

如果Ajax响应成功将其添加到disabled这个按钮。

在这里,我需要这个按钮有点击事件disabled。如果有,需要提醒不同的消息,或者如果没有,我需要提醒不同的消息。

这就是我的尝试。

$(document).on('click', 'a.employee', function(e){ 
    var empID = $(this).data('emp_id'); 
    if($(this).is(':disabled')) { 
    alert('message1'); 
    } else { 
    alert('message2'); 
    } 
}); 

也尝试过这样的事情:

$(document).on('click', 'a.employee:not(:disabled)', function(e){ 
    var empID = $(this).data('emp_id'); 
    alert('here'); 
}); 

但是,两者都工作不适合我。 希望有人可以帮助我。 谢谢。

回答

1

您不能禁用定位元素,并添加disabled属性,那就意味着你的HTML是无效的。

要解决这个问题,您可以简单地向该元素添加一个类并在其上键入点击行为。试试这个:

$(document).on('click', 'a.employee', function(e) { 
 
    e.preventDefault(); 
 
    var empID = $(this).data('emp_id'); 
 

 
    if ($(this).hasClass('disabled')) { 
 
    console.log('message1'); 
 
    } else { 
 
    console.log('message2'); 
 
    } 
 
});
.disabled { 
 
    color: #CCC; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="btn btn-sm btn-danger employee disabled" data-emp_id="23" href="#">Disabled</a> 
 

 
<a class="btn btn-sm btn-danger employee" data-emp_id="23" href="#">Not disabled</a>

另外要注意的,而不是添加javascript:a元素的href属性使用preventDefault()

+0

谢谢你的回答。你能告诉我在'a'标签的'href'属性中使用'javascript:0'时出了什么问题吗? – user3733831

+0

这是丑陋的,过时的,不是一个很好的关注分离。如果你把'preventDefault()'放在你的JS代码中,那么所有的JS都在一个地方,而不是分散在项目上 –

1

残疾人为not an attribute,因此没有锚标记

的属性尝试这种方式

$(document).on('click', 'a.employee[disabled])', function(e){ 
    var empID = $(this).data('emp_id'); 
    alert('here'); 
});