2016-04-28 3 views
1

クリックイベントを削除せずに、マテリアライゼーションのボタンを無効にしようとしました。しかし、あなたがこのjsfiddleで見ることができるように、私は視覚効果を得るだけです。クリックイベントはまだ開始されています。マテリアライズでボタンを無効にするにはどうすればいいですか?

私は次のことを試してみました:

$('#btnOne').prop('disabled', true).addClass('disabled'); 

それはバグですか?または私は何か間違っているのですか?

編集:タグに問題がないようですbutton

答えて

2

私は答えを見つけました。

aタグをプロパティで無効にすることはできません。buttonを代わりに使用できます。

2

あなたは#disableBtnOneがクリックされたリスナー削除することができます - Fiddle

+0

しかし、私はclickイベントでその関数を保持したい場合毎回それを再バインドしたくない。 – Clemzd

3

あなたは、いくつかの新しい追加することができます参照してください

$('#disableBtnOne').click(function(){ 
    $('#btnOne').prop('disabled', true).addClass('disabled').off("click"); 
}); 

をCSSルールを適用し、現在のjQueryコードを保持します。例えば

:そのクラスがトリガされたとき

.disabled { 
    pointer-events: none; 
} 

これは、すべてのイベントを防ぐことができます。

fiddleを参照してください:

注:ポインタイベントは、最新のブラウザでサポートされています。それをチェックしてください:http://caniuse.com/#feat=pointer-events

+0

素晴らしい発見だが、私はjavascriptを使用する解決策を好む – Clemzd

+0

問題はありません。 @クレムドは正しいです。あなたは ''アンカー ''を ''ボタン ''に変えてください。また、あなたが '' href''属性を '' ''に置かなかったことに気付きました。これは良いことではありません。だから、「ボタン」に固執する。 – Ardian

関連する問題