2016-05-13 34 views
0

我目前正在尝试刷新由AJAX调用生成的我的应用程序的一小部分,我需要能够定位最后一次调用,并再次运行相同的参数并通过不同的按钮点击运行。它之前接收数据的方式来自之前点击过的按钮。我正在使用C#在后端工作。这是我的AJAX呼叫:重新运行最后一次AJAX调用

$('.eventlevel').on('click', function (e) { 
    e.preventDefault(); 

    $.ajax({ 
     type: "GET", 
     url: "/Home/GetTasksForEventLevel", 
     data: { 
      EventLevelID: $(this).attr('data-EventLevelID') 
     }, 
     success: function (eventLevel) { 
      $('#tasks').html(' '); 
      $.each(eventLevel.data, function (key, value) { 
       var html = " <div class='dashbox col-lg-5 col-sm-5 col-xs-5'>"; 
       if (value.EventLevel == 3) { 
        html += "<div class='green-circle'></div>"; 
       } 
       else if (value.EventLevel == 2) { 
        html += "<div class='yellow-circle'></div>"; 
       } 
       else if (value.EventLevel == 1) { 
        html += "<div class='red-circle'></div>"; 
       } 
       else if (value.EventLevel == 4) { 
        html += "<div class='grey-circle'></div>"; 
       } 
       html += "<p class='bodytext'>" + value.EventDescription + "</p>"; 
       html += "<p class='bodytext'>Pending Items: (" + value.EventValue + ")</p>"; 
       html += "<p class='bodytext'>Last Updated: " + value.EventDateTimeText + "</p>"; 
       html += "<p><a href='#'>View History</a></p>"; 
       html += "<button data-MonitoringEventID='" + value.MonitoringEventID + "' class='raise'>Raise Alert</button>"; 
       html += "<button class='review'>Commit Review</button> </div>"; 
       $('#tasks').append(html); 
      }); 
     } 
    }); 
    return false; 
}); 

在此先感谢您提供的所有帮助。

回答

1

我会推荐一个ajax包装函数,它将接受ajax对象作为参数并将其存储在变量中以跟踪“最后”调用。像这样的东西应该工作:

var lastAjaxCall; 
function ajaxWrapper(obj){ 
    lastAjaxCall = obj; 
    $.ajax(obj); 
} 

的函数调用你的最后AJAX调用是那么简单,如下:

function executeLastAjaxCall(){ 
    if(lastAjaxCall) $.ajax(lastAjaxCall); 
} 
+0

会我将该功能放在我的点击中? 'var lastAjaxCall; function ajaxWrapper(obj){last_jaxCall = obj; $ .ajax(obj); ('click', 函数executeLastAjaxCall(){ if(lastAjaxCall)$ .ajax(lastAjaxCall); });' –

+1

是的,只需将代码中的'.ajax'调用替换为对'ajaxWrapper'的调用即可。然后,当您想要执行“execute last call”行为时,只需从第二个按钮单击事件 –

+0

中调用'executeLastAjaxCall()'哦,您的意思是函数声明本身......需要超出你的代码。 –

0

放置ajax调用一个函数内部:

function getData(callback){ 
$.ajax({ 
    success: callback, 
    error: callback 
}) 
} 

getData(function(data)){ 
//Do something with data... 
}