Javascript使用.load()

时间:2015-12-03 10:38:17

标签: javascript jquery

我使用.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;
    });
});

没有任何作用。它们都加载内容但按钮不起作用。

有什么想法吗?

2 个答案:

答案 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});