【发布时间】:2012-02-11 19:17:07
【问题描述】:
我面临以下情况。
我使用 ajax 与使用混合 html/js 代码响应的后端进行通信。我使用 html() 函数在 div 中加载我的内容 - 即$("#mydiv").html(ajaxResponse);
但是,嵌入在ajaxResponse 中<script> 标记中的js 代码在全局(窗口)上下文中运行,而不是我预定义的。
在这种情况下有什么办法可以改变执行的上下文吗?
代码如下所示
index.html:
<div id="mydiv"></div>
<script type="text/javascript">
$(function(){
$.ajax({
url: '/myAjaxResponse.html',
context: $(this),
success: function(resp) { $("#mydiv").html(resp); }
});
});
</script>
myAjaxResponse.html:
<!-- Some html... really just anything :) -->
<script type="text/javascript">
console.log($(this)); // $(this) points to window object :(
</script>
【问题讨论】:
-
您想要的上下文是什么?
#mydiv?
标签: javascript jquery