尝试在浏览器中创建浏览器 - 使用AJAX浏览网站而不实际重定向,但遇到递归问题。救命?

时间:2012-03-21 19:54:10

标签: jquery ajax recursion load

我正在尝试构建一个网站,在其中加载另一个网站,但使用自定义css。为此,我正在加载页面,禁用所有附加的css,然后触发下面的功能。

我希望它阻止浏览器在点击时重定向,读取href,并用新页面中的相同内容替换部分的内容。然后,此函数将触发加载的内容,允许我在该部分内导航而不实际被重定向。

function linkHijack() {
    $('a').click(function(event) {

      event.preventDefault();
      var link = $(this).attr("href");
      $('div#content').load(link+'div#content', linkHijack());

    });
}

它最初似乎工作正常,但该功能不适用于新加载的内容。我如何让它劫持新的链接?

2 个答案:

答案 0 :(得分:1)

您需要事件委派。从jQuery 1.7开始, .live()已被弃用!

改为使用.on()

$('div#content').on('click', 'a', function(e){
      e.preventDefault();
      var link = $(this).attr("href");
      $('div#content').load(link+'div#content');
});

此代码“监听”来自div#content的{​​{1}}点击次数。

答案 1 :(得分:0)

对于旧版本的jquery,使用.live(),对于中间版本,需要使用.delegate(),对于最新版本,需要使用.on()。

这将确保ajax返回的任何新内容都会使其事件冒出来。

$('a').live("click", function(event) {

      event.preventDefault();
      var link = $(this).attr("href");
      $('div#content').load(link+'div#content', linkHijack());
});