2017-09-20 2 views
1

作業しないでクラスを削除する:jQueryのポインタイベントのどれもが、私はクラス持っ

.disabled { 
    pointer-events: none; 
} 

を、私はjqueryのを使用して、それを削除します。

$('#button').removeClass('disabled') 

とクラスは無効になりますが、それでもこのリンクをクリックします動作しません - クリックするとhrefリンクにリダイレクトされません(実際には何も起こりません)。一方

、私はリンク上のattr無効を使用し、それは作業を行い

$('#button').prop('disabled', false) 

を使用して、それを削除した場合...

しかし、私のプロジェクトの開発者のための「無効」クラスを使用していますリンクを無効にする(理由はわからないので)、私はそれに固執したい、任意の提案?

PS。クラス '無効'チェックを削除した後$('#button').css('pointer-events')autoを返すので、うまくいくはずです。私は迷っています。

私の例:

<a id='my-button' href="www.google.com" class='disabled' style="display: block;"><i class="pti pt-trophy"></i><span>Click me</span></a> 

はCSS:

a.disabled { 
    pointer-events: none; 
} 

といくつかの他のdivをクリックした後、私は、これはhrefのリンクに変更し、クラスを削除します。

$("#my-button").attr('href', result['success']['new_link']); 
$("#my-button").removeClass('disabled'); 

(結果はオブジェクトconing ajaxの結果と新しいリンク、複数回チェック、それは定義され、正しいです、コンソールはエラーをスローしない、そのサーバー)

+0

「_does work_ない」を定義してください、どこで私たちの[MCVE]ですか? – Teemu

+2

little demo https://jsfiddle.net/wjjgwvcm/ – David

+0

あなたのデモは期待どおりに動作し、ポインタイベントルールでクラスを削除し、「送信」ボタンを再度クリックすることができます。 – Teemu

答えて

0

たぶん、あなたはあなたのコード内で何かが欠けているん、私はあなたのための作業例を作った:

$("button:first").click(function(){ 
 
    $("button:last").toggleClass("disabled") 
 
    $("button:last").text(function(i, text){ 
 
      return text === "Disabled" ? "Click me" : "Disabled"; 
 
     }) 
 
}); 
 
$("button:last").click(function(){ 
 
    console.log("clicked") 
 
});
.disabled { 
 
    pointer-events: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button type="button">Toggle Disable for bottom button</button><br><br> 
 
<button type="button" class="disabled">Disabled</button>

関連する問題