[英]Can ajax call on return add new javascript function to the page?
我有一个jQuery ajax调用,它返回表的html。 现在,我需要让用户在桌子上执行一些javascript操作。
返回的ajax响应中是否可以包含javascript代码,或者我必须在首次加载页面时在页面中加载javascript代码吗?
用户可以选择触发“新” javascript。 它不必在ajax调用上触发。
为了回答实际问题,返回响应可以包含脚本。 最简单的方法是将其放在html之后,因为ready
事件已经在页面中触发,正在将其加载到
您可以使用jQuery .ajax()随附的成功(或其他事件)回调来执行此JS操作。 像这样:
$.ajax({
success: function(){
// Perform JS action
}
}
jQuery API列出了可用于AJAX调用的所有此类事件回调。 检查此以获取更多信息。
返回的ajax响应可以包含JavaScript代码作为字符串。 然后,您可以评估(响应)。
如果要请求将在检索时运行的带有ajax的脚本,则可以使用jQuery的getScript()
方法来检索它,然后执行它。
根据jQuery文档, getScript()
是以下内容的简写:
$.ajax({
url: url,
dataType: "script",
success: success
});
这表明如果适当地设置数据类型,jQuery的ajax命令将自动为您处理返回的脚本。
您可以将您的请求设置为变量,并在设置后对其进行扩展。
// 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 );
});
您可以使用成功回调来做到这一点,我认为这可以是一种尝试的方法
$.ajax({
.....,
.....,
success:
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = url;
$("#tableID").append( script );
});
我希望它会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.