2017-07-03 18 views
1

ボタンのIDをシリアル化は、私はこれらのような2つのボタンが、持っています。私はそれらを取る更新クラスアクションの後jqueryの内の情報およびAjax

$('button.yellow-button').on('click', function(form)

からクリックして、我々はその後、yellow-buttonをクリックすると、どこかのコードでは、私は、例えば次のように変更します。

this_button.attr('class', 'green-button'); 
this_button.html('Upublicznij'); 

yellow-buttongreen-buttonになります。私はまだアクションと呼ばれるこのボタンをクリックし

しかし、次の

は、

$('button.yellow-button').on('click', function(form)

ですが...これは今green-buttonなので、それは緑のボタンのアクションに関しては、アクション$('button.green-button').on('click', function(form)を呼び出す必要があります。正しく動作させるには、ページを更新する必要があります

更新方法は?私はjqueryはボタ​​ンクラスが変更されたことを知らないと思うし、jqueryのためにまだ黄色です...

もう一つのことは、私は2つのidが両方のボタンで同じであることを見ることができます。非公開。 jquery ajaxで私はこのIDをdata: { id: $(this).attr('id') },から取得してPOSTを要求します。

<button id="publicate-1"... 
<button id="unpublicate-1"... 

しかし、それでもまだ、私はAJAX PHP POSTリクエストの処理に必要なIDのこれだけ「番号」を取る:どのように私は、これら二つの薄くなりは次のように持って区切ることができますか? IDとしてjsonにこれらの番号だけを取る方法?このボタンだけをシリアル化して、これらの数字だけを取るようなことをすることはできますか? item単語

+0

2つのイベントに依存する必要がないように、変更されない共通の「クラス」を保持しないのはなぜですか? –

+0

緑色のクラスはCSSなどで緑色のスタイルを持っているので黄色も違う –

+0

いいえ、それらを削除することはできますが、 '

答えて

1

ずにのみ番号5に​​をカットsortable('serialize')

と同様に下記の適切な解決策を見つけてください。

$(document).on('click','button', function(e){ 
    e.preventDefault(); 
    var obj = $(this); 
    var checkPoint = obj.attr('class'); 
    switch(checkPoint){ 
     case 'green-button': 
      // Code for green-button action 
      obj.removeClass('green-button').addClass('yellow-button'); 
      break; 
     case 'yellow-button': 
      // Code for yellow-button action 
      obj.removeClass('yellow-button').addClass('green-button'); 
      break; 
     default: 
      // Default Action 
      break; 
    } 
}); 

それがうまく動作しない場合は教えてください。

+0

ありがとうございました:) –

+0

@KrystianPolska:この障害からあなたを助けてうれしいです。 –

関連する問題