0

我有一个返回表格 html 的 jQuery ajax 调用。现在我需要让用户在桌子上做一些 javascript 操作。

返回的 ajax 响应是否可以包含 javascript 代码,还是我必须在第一次加载页面时在页面中加载 javascript 代码?

用户可以选择触发“新”javascript。它不必在 ajax 调用时触发。

4

6 回答 6

2

要回答实际问题,返回响应可以包含脚本。最简单的是将它放在 html 之后,因为ready事件已经在它正在加载的页面中触发

于 2012-06-23T04:49:33.420 回答
1

您可以使用 jQuery .ajax() 提供的成功(或其他事件)回调来执行此 JS 操作。像这样的东西:

$.ajax({
   success: function(){
     // Perform JS action
   }
}

jQuery API 列出了所有可用于 AJAX 调用的此类事件回调。检查以获取更多信息。

于 2012-06-23T04:42:22.860 回答
1

返回的 ajax 响应可以包含 javascript 代码作为字符串。然后你可以评估(响应)。

于 2012-06-23T04:49:45.140 回答
0

如果你想用 ajax 请求一个在检索时会运行的脚本,那么你可以使用 jQuery 的getScript()方法来检索它然后执行它。

根据 jQuery 文档,getScript()它是以下内容的简写:

$.ajax({
  url: url,
  dataType: "script",
  success: success
});

这表明如果您适当地设置数据类型,jQuery 的 ajax 命令将自动为您处理返回的脚本。

于 2012-06-23T04:46:35.760 回答
0

您可以将您的请求设置为变量并在设置后对其进行扩展。

// Make the request to the server
var dataID = $("#WhatINeedForAParameter").val();
var request = $.ajax({
  url: "PageOrControllerOrWebApi/MethodName",
  type: "POST",
  data: { id : dataID },
  dataType: "json"
});

// When the request is done process
// what you need done
request.done(function(msg) {
  alert('You got this ' + msg);
});

// If the request failed you can
// see what the problem was and
// handle the situation accordingly
request.fail(function(jqXHR, textStatus) {
  alert( "Your request failed: " + textStatus );
});
于 2012-06-23T04:48:56.587 回答
0

你可以使用成功回调来做到这一点我认为这可能是一种方式请尝试

$.ajax({
   .....,
   .....,
   success:  
    var script = document.createElement( 'script' );
    script.type = 'text/javascript';
    script.src = url;
    $("#tableID").append( script );
    });

我希望它会有所帮助。

于 2012-06-23T04:51:16.097 回答