2009-08-25 11 views
1

JQueryを使用して特定の要素のクラスが変更されたときを検出する方法を知っている人はいますか?jqueryはクラス割り当ての変更を検出します

私は「単純に数える」JQueryプラグインを使用して、テキスト領域に入力された文字数をユーザーに通知しています。ユーザーが許可された文字数を超えると、「投稿」ボタンを無効にします。

限界に達すると割り当てられたCSSクラスが数えられるだけなので、ポストボタンを無効にできるようにそのイベントをキャプチャするのが私の考えですが、おそらくもっと良い方法がありますか?

ご提案は大歓迎です。

ありがとうございました。

+0

変更によってどういう意味がありますか? 例を挙げてください。 –

+0

私は彼が ".foo"を持っていて、 ".bar"を持っていた、または ".foo"を持っていて、今 ".foo .bar"を持っていたことを意味していると仮定しています。 – Sampson

+0

私はいくつかの追加の説明を追加しました。ありがとう。 – goombaloon

答えて

1

これはどういう意味ですか?

<script> 
    $("#myTextArea").change(function(){ 
     var contentLength = $(this).val().length; 
     var charLimit = 500; 
     if(contentLength > charLimit){ 
      $("#saveButton").attr("disabled","disabled"); 
     } 

    }); 

</script> 


<textarea id="myTextArea"></textArea> 
<input type="submit" id="saveButton"> 
+0

私は基本的にこれと一緒に行った(「変更」よりも「キーアップ」イベントを使用した以外)。もともと、私は上記のボタンディスエーブルコードの文字カウンタとANDの両方で最大の文字数を設定する必要はないと思っていましたが、すべてのオプションはあまりにもハッキリすぎるようでした。ありがとう。 – goombaloon

0

私は現在何かを知っていませんが、(jQueryを介して)クラス名が変更されるたびにカスタムイベントを発生させるプラグインをjQueryに書くことができます。

0

最大の文字数に達したかどうかを確認し、適切なロジックをオフにするかどうかを確認するキー入力またはアップ(テキスト領域用)のイベントを持つことができます。

$(textarea).keypress(function (e) { 
     if(getLetterCount() > 300){ 
      $(postButton).css('disabled', 'true'); 
     else 
      $(postButton).css('disabled', 'false'); 
     } 
}); 
1

あなたはクラスの変更を傍受しないように、コントロールをブロックする必要があると仮定すると、あなただけのアクション(クラスの追加)を担当するプラグインの一部を書き換えることができます。

0

このようなイベントはありません。あなたが必要とするのは、あなたのニーズに合うようにプラグインを微調整することです。

the codeを参照してください。どこでもaddClass(options.overClass)と呼ばれるボタンを無効にする必要があります。どこでもaddClass(options.safeClass)と呼ばれるボタンを有効にする必要があります。シンプル。

関連する問題