Get Same函数用于在ajax内容上加载ajax内容工作

时间:2015-05-31 07:01:27

标签: javascript jquery ajax

我希望通过ajax加载所有网站,我正在使用此代码,代码解释了我自己:

<script>
    function lage(url){
  $.get(url, function(data) {
    $('#plus').html(data);
    $('[href]').each(function() {
    var el = $(this);
    var val = el.attr('href');
    var sal=  'lage(\'' + val + '\')';
    el.removeAttr('href')
       .attr('onclick', sal);
});
  });
}
</script>
<body  onload="lage('http://crossorigin.me/http://anycorssite')">
<div id="plus"></div>

lage()函数无法处理加载了ajax的内容,但正在处理onload事件。

2 个答案:

答案 0 :(得分:1)

你可能会寻找这样的东西:

<script>

    function lage(url){
      $.get(url, function(data) {
        $('#plus').html(data);
      });
    }

    var initialUrl = $('body').data('initialUrl');
    lage(initialUrl);

    $('body').on('click', 'a', function (e) {
      var url = $(e.currentTarget).attr('href');
      lage(url);
      e.preventDefault();
    });

</script>

<body data-initial-url="http://crossorigin.me/http://anycorssite">
<div id="plus"></div>

答案 1 :(得分:1)

您可以使用jQuery附加活动。而是使用属性onclick,您可以使用.click(..)将事件绑定到元素。

$(document).ready(function() {
  lage('http://crossorigin.me/http://m.ndtv.com');

  $(document).on('click', 'a', function() { // dynamicaly bind event
    var el = $(this);
    var val = el.attr('href');
    lage('http://crossorigin.me/' + val); //< call lage function
    return false; // prevent to for default behavior (redirecting to href)
  });

  function lage(url) {
    $.get(url, function(data) {
      $('#plus').html(data);
    });
  }
});
.header {  background-color: red;  width: 700px;  height: 150px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="header" />
<div id="plus"></div>