【问题标题】:Jquery positioning code and recalling itjquery定位代码并调用
【发布时间】:2016-05-17 19:15:27
【问题描述】:

所以我有这个 jquery 代码包(注意其中一些可能非常错误但可以工作)并且有一些地方我想调用函数但我很难做到。代码是:

$(document).ready(function(){
     $("#myTablePager").html("");
    $.ajax({
       type: "POST",      
       url: "fetchTable.php",
      data: { ticketType:  $("#selectType option:selected").val()}  
    }).done(function( msg ) { 

            $("#troubleTable").html(msg); 
            $('#myTable').pageMe({pagerSelector:'#myTablePager',showPrevNext:true,hidePageNumbers:false,perPage:10});
    });


});
$(function (){ 
   $("#selectType").change(function (){ 
    $("#myTablePager").html("");
    $.ajax({  
       type: "POST",      
       url: "fetchTable.php", 
      data: { ticketType:  $("#selectType option:selected").val()} 
    }).done(function( msg ) {
            $("#troubleTable").html(msg); 
            $('#myTable').pageMe({pagerSelector:'#myTablePager',showPrevNext:true,hidePageNumbers:false,perPage:10});
    });
   });
});
$(document).on('click', '.viewTD', function(){
   var tid = $(this).closest('tr').find('.tidTD input').val();
   $.ajax({
       type: 'post',
        url: 'modalInfo.php',
       data: 'tid=' +tid,
       success: function(d){
           $('.modal-body').html(d);
           $('.modal-title').html("Ticket ID: " + tid);
           $('#myModal').modal('show');
           var time = $('#time').val();
           var desc = $('#description').val();

           $('#Resolved').click(function(){  //Here #1
              $.ajax({type: 'post',url: 'resolveTicket.php',data: 'tid=' +tid, success: function(s){
                $('#resolvedTicket').html("Resolved");
              }});
           });

           $("#addComment").click(function(){
           $.ajax({type: 'post', data: { myData: $('#commentAdd').serialize() }, url: "addComment.php", success: function(info){
             $.ajax({
                type: 'post',
                url: 'modalInfo.php',
                data: 'tid=' +tid,
                success: function(d){
                    $('.modal-body').html(d);
                    $('.modal-title').html("Ticket ID: " + tid);
                    $('#myModal').modal('show');
                }});
           }});
           });
       }

   });
});

我想要做的是调用上面的 jquery 以在其中一个 ajax 调用中从成功函数重新运行。我试图理解的一个例子是,我将注释 Here 1 放在其中我正在运行一些 Ajax 命令以更改数据库中的一行以通过 ajax 将新信息传递给它,当该 ajax 调用返回为成功我想做的是重新运行嵌套在 $(document).ready() 函数中的第一个 ajax 调用,以便在加载文档时生成的第一个表使用固定信息重新生成。

关于同一主题的另一个问题是在 ajax 调用下面我有我的模态 ajax,它嵌套在 $(document).on('click', '.viewTD'... 中,我遇到的问题是,当我打开模态并在该模态中填写表单时(这种形式是由第一次打开模式时调用的 ajax 生成的,$("#myModal").modal('show')... 区域是特定的)但是这样做之后,ajax 调用永远不会运行,除非我将 ajax 嵌套在开始的模式 jquery 区域中与$(document).on('click', '.viewTD'...。这样做的问题是,要返回固定表,我必须粘贴到同一个 jquery 中,该 jquery 在打开模式时首次运行该表单的 ajax 调用成功。这部分正在“工作”,尽管在我看来这是一个非常糟糕的解决方案,因为我无法在不关闭并重新打开模式的情况下添加第二条评论。我想我可以解决这个问题,如果我能回忆起之前的一点 jquery 而不必粘贴我在上面试图做的事情。任何想法我怎么能做到这一点。

我能写的最清楚的是如何告诉 jquery 在 ajax 调用的成功块中重新运行。

抱歉第一次解释不清楚。

【问题讨论】:

  • 我敢肯定这里一定有问题。
  • 请更具体地说明您的问题是什么,因为它目前非常广泛且不清楚。使用最小、完整和可验证的示例包含更少的代码。请阅读this.
  • 抱歉,我试图清理并删除了一些代码(离开了 JS),因为我觉得它可能不需要。

标签: javascript php jquery ajax twitter-bootstrap


【解决方案1】:

如果我理解您的问题,您可以定义函数并重用。

function hereOne(tid) {
    $.ajax({type: 'post',url: 'resolveTicket.php',data: 'tid=' +tid, success: function(s){
        $('#resolvedTicket').html("Resolved");
    }});
}

$('#Resolved').click(hereOne(tid));

这就是你想要做的?

【讨论】:

  • 这就是我希望我能做到的,但我想不出这会完全奏效,我发现了一些使用函数的来源,但它们都是非常模糊的解决方案,我想确保我可以使用适用于该项目的功能。谢谢你,Felippe,我很快就会尝试一下!
猜你喜欢
  • 2015-10-19
  • 2019-06-11
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多