我使用.load在我的首页上的Div中加载了一部分页面。我的问题是,加载的内容有一个设置,如果按钮内有javascript,他们不会执行,它会进入systemäIng使用errorpage。
按钮具有相同的脚本,但不同的ID,名称和类别如下所示:
<a href="" trg="" name="_ec_oie4" id="_ec_oie4" class="action actionbasket cancel" onclick="if( UI.pb_boolean(this, 'click') ) {} return false;">Cancel</a>
我尝试了多种方法来加载内容而没有任何运气。如果我加载整个页面,它可以解决所有其他问题。
我尝试过的脚本示例:
脚本1:
$(".dcjqg-accordion ul.sub-menu").load("/m4n?seid=etailer-basket div#centerbox.itembox.centerbox, script”);
脚本2:
$('.dcjqg-accordion ul.sub-menu').load('/m4n?seid=etailer-basket div#centerbox.itembox.centerbox, script', function () {
$.getScript('urltomyscript'); //the script that handles the buttons, as far as I can see
});
脚本3:
$(function(){
$.get('/m4n?seid=etailer-basket', function(result){
$result = $(result);
$result.find('#centerbox.itembox.centerbox').appendTo('.dcjqg-accordion ul.sub-menu');
$result.find('scripts').appendTo('.dcjqg-accordion ul.sub-menu');
}, 'html');
});
脚本4:
$('.dcjqg-accordion ul.sub-menu').load('/m4n?seid=etailer-basket div#centerbox.itembox.centerbox', function() {
$("#_ec_oie2").on("click", function() {
if (UI.pb_boolean(this, 'click')) { }
return false;
});
});
没有任何作用。它们都加载内容但按钮不起作用。
有什么想法吗?
答案 0 :(得分:0)
尝试将脚本4更改为:
$('.dcjqg-accordion ul.sub-menu').load('/m4n?seid=etailer-basket div#centerbox.itembox.centerbox,script'); //Load the content
我不是100%确定这也会加载脚本。
对于动态内容,您必须使用event delegation
事件委托允许我们将单个事件侦听器附加到父元素,该元素将为匹配选择器的所有后代触发,无论这些后代现在是存在还是将来添加。
$(document).on("click","#_ec_oie2",function(){
if (UI.pb_boolean(this, 'click')){
}
return false;
});
答案 1 :(得分:0)
我猜测问题是由于加载执行异步而发生的,因此HTML会在使按钮工作的脚本执行后更新。
解决问题的简单方法是在回调中触发按钮脚本:
$(".dcjqg-accordion ul.sub-menu").load("/m4n?seid=etailer-basket div#centerbox.itembox.centerbox, script”, function(){//this get executed, when content has loaded});