Javascript Mootools在ajax请求后追加html
我有一个类似这样的ajax调用Javascript Mootools在ajax请求后追加html,javascript,ajax,mootools,mootools-events,Javascript,Ajax,Mootools,Mootools Events,我有一个类似这样的ajax调用 $('campaignType').addEvent('change', function(){ alert($('campaignType').value); var request = new Request({ method: 'get', url: '/admin/admin_' + $('campaignType').value + '.php', onRequest:function() { alert('Re
$('campaignType').addEvent('change', function(){
alert($('campaignType').value);
var request = new Request({
method: 'get',
url: '/admin/admin_' + $('campaignType').value + '.php',
onRequest:function() {
alert('Request has been made, please be patient')
},
onComplete:function(response) {
$('campaignForm').append(response);
}
}).send();
});
实际上,发生的情况取决于从另一个文件返回的`$'campaignType'的值,但是我似乎无法将HTML附加到我的容器中。有人愿意给我一些建议吗
谢谢我想你喜欢使用onSuccess而不是onComplete我想你喜欢使用onSuccess而不是onComplete如果你使用的是mootools 1.2.4,你可以将Request改为Request.HTML并使用append选项。不确定append选项是否在旧版本中
$('campaignType').addEvent('change', function(){
new Request.HTML({
method: 'get',
url: '/admin/admin_' + $('campaignType').value + '.php',
append: $('campaignForm')
}).send();
});
如果您使用的是mootools 1.2.4,您可以将Request更改为Request.HTML并使用append选项。不确定append选项是否在旧版本中
$('campaignType').addEvent('change', function(){
new Request.HTML({
method: 'get',
url: '/admin/admin_' + $('campaignType').value + '.php',
append: $('campaignForm')
}).send();
});
.append不是mootools中的有效元素原型
如果您想将HTML附加到现有的HTML中,那么您可以通过定义站点中的LIb/Cype位来实现。
Element.implement({
append: function(newhtml) {
// silly name, does not say to me you are appending html. rename to appendHTML
return this.set("html", this.get("html") + newhtml);
}
});
或者在您的onComplete中执行以下操作:
var cf = $('campaignForm');
cf.set("html", cf.get("html") + this.response.text);
玩得开心:.append在mootools中不是有效的元素原型
如果您想将HTML附加到现有的HTML中,那么您可以通过定义站点中的LIb/Cype位来实现。
Element.implement({
append: function(newhtml) {
// silly name, does not say to me you are appending html. rename to appendHTML
return this.set("html", this.get("html") + newhtml);
}
});
或者在您的onComplete中执行以下操作:
var cf = $('campaignForm');
cf.set("html", cf.get("html") + this.response.text);
玩得开心:Dimitar的解决方案很接近,但它是一个糟糕的解决方案,因为它会重新创建整个元素内容并销毁附加的事件处理程序。更好的解决办法是:
Element.implement({
append: function(newhtml) {
return this.adopt(new Element('div', {html: newhtml}).getChildren());
}
});
这实际上是Request.HTML内部所做的。Dimitar的解决方案很接近,但它是一个糟糕的解决方案,因为它会重新创建整个元素内容并销毁附加的事件处理程序。更好的解决办法是:
Element.implement({
append: function(newhtml) {
return this.adopt(new Element('div', {html: newhtml}).getChildren());
}
});
这实际上是Request.HTML内部所做的。对于复制粘贴程序,请在第二行末尾添加一个{。感谢您提供的示例如果您使用事件委派,则不存在事件处理程序问题。对于复制粘贴程序,请添加一个{{到第二行的末尾。感谢您提供的示例。如果您使用事件委派,则事件处理程序问题不存在。