2016-11-29 10 views
0

jquery numpadを使用しています。完全に ですが、ajax呼び出し後は動作しません。 。http://a.kabachnik.info/jquery-numpad.htmljquery numpadがajaxコールの後に機能しない

テンキーのジャバスクリプト:

// Set NumPad defaults for jQuery mobile. 
// These defaults will be applied to all NumPads within this document! 
$.fn.numpad.defaults.gridTpl = '<table class="table modal-content"></table>'; 
$.fn.numpad.defaults.backgroundTpl = '<div class="modal-backdrop in"></div>'; 
$.fn.numpad.defaults.displayTpl = '<input type="text" class="form-control" />'; 
$.fn.numpad.defaults.buttonNumberTpl = '<button type="button" class="btn btn-default"></button>'; 
$.fn.numpad.defaults.buttonFunctionTpl = '<button type="button" class="btn" style="width: 100%;"></button>'; 
$.fn.numpad.defaults.onKeypadCreate = function(){$(this).find('.done').addClass('btn-primary');}; 

// Instantiate NumPad once the page is ready to be shown 
$(document).ready(function(){ 
    $('#text-basic').numpad(); 
    $('#password').numpad({ 
     displayTpl: '<input class="form-control" type="password" />', 
     hidePlusMinusButton: true, 
     hideDecimalButton: true 
    }); 
    $('#numpadButton-btn').numpad({ 
     target: $('#numpadButton') 
    }); 
    $('#numpadButton-btn2').numpad({ 
     target: $('#numpadButton2') 
    }); 
    $('#numpad4div').numpad(); 
    $('#numpad4column .qtyInput').numpad(); 

    $('#numpad4column tr').on('click', function(e){ 
     $(this).find('.qtyInput').numpad('open'); 
    }); 
}); 
私は( '関数や他の機能などをクリックしてくださいしかし、私は結果を取得できませんでした 私は私の悪い英語ごめんなさい:) 拡張リンクに疲れてきました

AJAX呼び出しリロードテンキー及びその他のエリア:

$("#toplamtutar").on('click', '#button-transaction2', function() { 
    $.ajax({ 
     url: 'index.php?route=marketing/affiliate/addtransaction&token=<?php echo $token; ?>&affiliate_id=<?php echo $affiliate_id; ?>', 
     type: 'post', 
     dataType: 'json', 
     data: 'description=' + encodeURIComponent($('#tab-transaction input[name=\'description\']').val()) + '&amount=' + encodeURIComponent($('#tab-transaction input[name=\'amount\']').val()), 
     beforeSend: function() { 
      $('#button-transaction2').button('loading'); 
     }, 
     complete: function() { 
      $('#button-transaction2').button('reset'); 
     }, 
     success: function(json) { 
      $('.alert').remove(); 

      if (json['error']) { 
       $('#tab-transaction').prepend('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div></div>'); 
      } 

      if (json['success']) { 
       $('#tab-transaction').prepend('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div></div>'); 

       $('#transaction').load('index.php?route=marketing/affiliate/transaction&token=<?php echo $token; ?>&affiliate_id=<?php echo $affiliate_id; ?>'); 
       $("#toplamtutar").load(location.href+" #toplamtutar>*",""); 
       $('#tab-transaction input[name=\'amount\']').val('-<?php echo $balance; ?>'); 
       $('#tab-transaction input[name=\'description\']').val('Hesap Alındı');   
      } 
     } 
    }); 
}); 

HTML:

<div class="input-group" style="border-top: 1px solid #ededed; padding-top: 15px; padding-bottom: 15px;"> 
    <input type="text" name="tasimano" value="" placeholder="Masa No" style="background-color: #f0f0f0;" id="numpadButton" class="form-control" aria-describedby="numpadButton-btn" /> 
    <span class="input-group-btn"> 
    <button class="btn btn-default" id="numpadButton-btn" type="button"><i class="fa fa-calculator"></i></button> 
    </span> 
</div> 
+0

私はあなたが最初の要素が置き換えられるので、ajax成功コールバックでnumpadを再初期化する必要があると思います – anu

答えて

0

要素

$(document).ready(function(){ 
     initializeNumpad(); // Instantiate NumPad once the page is ready to be shown 
     $('#numpad4column tr').on('click', function(e){ 
      $(this).find('.qtyInput').numpad('open'); 
     }); 
    }); 

    function initializeNumpad() { 
     $('#text-basic').numpad(); 
     $('#password').numpad({ 
         displayTpl: '<input class="form-control" type="password" />', 
         hidePlusMinusButton: true, 
         hideDecimalButton: true 
     }); 
     $('#numpadButton-btn').numpad({ 
      target: $('#numpadButton') 
     }); 
     $('#numpadButton-btn2').numpad({ 
      target: $('#numpadButton2') 
     }); 
     $('#numpad4div').numpad(); 
     $('#numpad4column .qtyInput').numpad(); 
    } 

上のテンキーを初期化する機能を作成することがリフレッシュ要素にプラグインのイベントを再接続しますAJAXの成功コールバック

$.ajax({ 
    url: 'index.php?route=marketing/affiliate/addtransaction&token=<?php echo $token; ?>&affiliate_id=<?php echo $affiliate_id; ?>', 
    .... 
    .... 
    success: function(json) { 
     $('.alert').remove(); 
     ..... 
     if (json['success']) { 
      .... 
      $("#toplamtutar").load(location.href+" #toplamtutar>*",""); 
      $('#tab-transaction input[name=\'amount\']').val('-<?php echo $balance; ?>'); 
      $('#tab-transaction input[name=\'description\']').val('Hesap Alındı');   
      initializeNumpad();// call here to reinitialize 
     } 
    } 
}); 

で同じ関数を呼び出します。

+0

非常にありがとう、私はこのコードを問題countinuesしてください。私は何をすべきかわかりません – ermanak

関連する問題