2016-10-28 17 views
0

ボタンクリックイベントは2回発射されます...私は2つのカードをマテリアライズCSS上に描画しています...ボタンを押すと、クライアントセッションは開始し、何かをします...そうでなければ、モーダルを開きます。しかし、クリックだけで1時間を発射しなければならない、私は1回のクリックで、警告2回(「chango」)を取得しています... HELP !! PLS、ここでのコードは次のとおりです。ボタンクリック2回モーダルjqueryで実行する

function list_section(data) { 
    var p = JSON.parse(data); // 2 results 
    $.each(p, function(i, item) { 
    if (item.SECTION_ID == 1) { 
     $("#president").append(
      '<div class="col s6">' + 
      '\<div class="card medium sticky-action" id="president_'+item.POLITIC_ID+'">' + 
      '<div class="card-image waves-effect waves-block waves-light">' + 
      '<div class="video-container">' + 
      ' <iframe src="' + baseurl + 'public/uploads/' + item.POLITIC_FILE + '" frameborder="0" allowfullscreen controls></iframe>' + 
      '</div>' + 
      '</div>' + 
      '<div class="card-action">' + 
      '<span class="card-title activator grey-text text-darken-4">' + item.POLITIC_NAME + '&nbsp' + item.POLITIC_LASTNAME + '<i class="material-icons right">more_vert</i></span>' + 
      '<div class="row" style="margin-top:10px;margin-bottom:0px;">' + 
      '<div class="col s3">' + 
      '<button class=" btn waves-effect modal-trigger waves-light red darken-3 disapprove disapprove_president" data-target="verification" type="submit" name="action" ">Desapruebo</button>' + 
      '</div>' + 
      '<div class="col s3 offset-s4">' + 
      '<button class=" btn waves-effect modal-trigger waves-light light-green darken-3 aprove aprove_president" data-target="verification" type="submit" name="action" ">Apruebo</button>' + 
      '</div>' + 
      '</div>' + 
      '</div>' + 
      '<div class="card-reveal">' + 
      '<span class="card-title grey-text text-darken-4">' + item.POLITIC_NAME + '&nbsp' + item.POLITIC_LASTNAME + '<i class="material-icons right">close</i></span>' + 
      '<p>Here is some more information about this product that is only revealed once clicked on.</p>' + 
      '</div>' + 
      '</div>' + 
      '<input type="hidden" id="' + item.POLITIC_ID + '">' + 
      '</div>' 
     ); 
     $(document).on('click', '.aprove , .disapprove', function() { 
      // $(".aprove , .disapprove").unbind("click"); 
      // $(".aprove , .disapprove").on("click", selectKeepFirstOfAll); 
      if (sesion != "") { 
       if ($(this).attr('class').split(' ').pop() == 'aprove_president') { 
        alert("chango"); 
        var data = {} 
        $.ajax({ 
         url: baseurl+'result/aprove', 
         type: 'POST', 
         data: data 
        }) 
        .done(function() { 
         console.log("success"); 
        }) 
        .fail(function() { 
         console.log("error"); 
        }) 
        .always(function() { 
         console.log("complete"); 
        }); 
       } 
       else if ($(this).attr('class').split(' ').pop() == 'disapprove_president') { 
       } 
      } 
      else { 
       $('#verification').openModal(); 
      } 
     }); 
    } 

答えて

0

$(document).on('click'...)を移動しますlist_section機能(グローバルにする)。処理するすべてのセクションにonclickハンドラを追加しています。

+0

しかし、私はアイテムが必要です.POLITIC_ID ... ajaxリクエスト=( –

+0

あなたは既にそれを持っています。これは次のようなものです: '$(this).closest(" div.col.s6 ") .find( 'input [type = hidden]')。last()。attr( 'id') '(セレクタをよりシンプルにするために、「politic_id」クラスを入力に追加してください) – Tibrogargan

+0

@Ragnarは、とにかくクリックハンドラを追加すると、その参照を保持し、何のボタンを押してもデータセットを送信します。現在は、ボタンを押すたびにすべてのハンドラが呼び出されます。データをハンドラにハードコードする必要があります。JavaScriptのどこかにデータを格納するか、HTMLから読み取るかのどちらかにする必要があります – Tibrogargan

関連する問題