我正在尝试将 jquery ajax 转换为 Extjs 并消除对 jquery 库的使用。
但是问题来了...
使用 Ext.Ajax.request 加载 ajax 响应后,ajax 页面中的脚本不会触发。
jQuery Ajax 函数:
$(document).ready(function () {
$.ajax({
type: 'POST',
url: '@Url.Content("~/Test/Header/")',
success: function (response) {
$("#header").replaceWith(response);
}
});
});
上面的代码可以完美地工作,ajax 内容可以正确显示,并且所有 javascript 都可以正确执行。
这是 Extjs 版本的 ajax 请求:
Ext.onDocumentReady(function () {
Ext.Ajax.request({
method: 'POST',
url: '@Url.Content("~/Test/Header/")',
success: function (response) {
Ext.get('header').dom.outerHTML = response.responseText;
}
});
});
上面的代码在检索响应内容方面工作正常,但是当我用响应文本替换现有的“div”时,响应页面中的 JavaScript 不会触发。
我怀疑这是因为我没有正确替换元素。
因此,当我尝试使用元素替换的 jQuery 版本时,它工作得很好。
我的问题是,Extjs 替换“div”的正确方法是什么?
我尝试了几种方法,但都不起作用......
重新表述我的问题的更好方法是...Extjs 相当于什么:
$("#header").replaceWith(response);
谢谢
最佳答案
jQuery:
$("#header").replaceWith(response);
extjs:
Ext.get('header').replaceWith(response);
//note: no pound sign
来源:
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.dom.Element-method-replaceWith
API 文档遗漏了一些东西,但总的来说,这是一个很棒的引用。享受吧!
关于javascript - 如何用ExtJs ajax responseText替换元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12755613/