2016-09-16 174 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'); 
});