2017-04-04 48 views
1

這是第一次,我使用Ajax和jQuery和我新的jQuery的我有一個結構負載阿賈克斯

$(document).ready(function(){ 
 
    data_url = $('.lazy_content').attr("data-url"); 
 
    data_id = $('.lazy_content').attr("data-target-id"); 
 

 
    $.ajax({ 
 
     url: data_url, 
 
     type: "POST", 
 
     beforeSend: function() { 
 
      $(".loaderDiv").show(); 
 
      $("#" + data_id).html(""); 
 
     }, 
 
     success: function(data) { 
 
      $(data).each(function(index, el) { 
 
       $(".loaderDiv").hide(); 
 
       $("#" + data_id).html(data); 
 
      }); 
 
     } 
 
    }); 
 
});
<div class="lazy_content" data-url="/ajax/yorumlar/@Model.OtelBilgileri.seflink" data-target-id="ajax-content-1"> 
 
    <h4 class="tur-main-baslik">COMMENTS</h4> 
 
    <div id="ajax-content-1"></div> 
 
</div> 
 

 
<div class="lazy_content" data-url="/ajax/trustyou/@Model.OtelBilgileri.seflink" data-target-id="ajax-content-2"> 
 
    <h4 class="tur-main-baslik section-head">POSTS</h4> 
 
    <div id="ajax-content-2"></div> 
 
</div>

,你看,我有data-url這個數據網址有我的ajax文件,我得到我的ajax文件,但頁面加載後什麼都不工作..我的代碼有什麼問題?

+0

你有什麼錯誤嗎? – Mazz

+0

瀏覽器控制檯中的任何錯誤?你在代碼之前添加了jQuery庫嗎? –

+0

沒有,但我想問題是我的事件 –

回答

1

把你的代碼中$(document).ready()

,我認爲你需要改變你的代碼,如:

$(document).ready(function() { 
    data_url = $('.lazy_content').attr("data-url"); 
    data_id = $('.lazy_content').attr("data-target-id"); 

    $.ajax({ 
     url: data_url, 
     type: "POST", 
     beforeSend: function() { 
      $(".loaderDiv").show(); 
      $("#" + data_id).html(""); 
     }, 
     success: function(data) { 
      $(data).each(function(index, el) { 
       $(".loaderDiv").hide(); 
       $("#" + data_id).html(data); 
      }); 
     } 
    }) 
}) 

或者每一類即迭代.lazy_content

$(document).ready(function() { 
    $('.lazy_content').each(function(){ 
     data_url = $(this).attr("data-url"); 
     data_id = $(this).attr("data-target-id"); 

     $.ajax({ 
      url: data_url, 
      type: "POST", 
      beforeSend: function() { 
       $(".loaderDiv").show(); 
       $("#" + data_id).html(""); 
      }, 
      success: function(data) { 
       $(data).each(function(index, el) { 
        $(".loaderDiv").hide(); 
        $("#" + data_id).html(data); 
       }); 
      } 
     }) 
    }) 
}) 
+0

我有很多的div讓我的AJAX文件,但這個代碼只對一個DIV –

+0

所有正確的工作一個新的!你能不能用jsfiddle展示更多的代碼? –

+0

Ok.Updated我的代碼和Ajax的工作原理只有第一個div我的AJAX文件加載的第一個div和另一個DIV不加載我想這是有關與'this'或類似的東西 –

1

根據其中的JavaScript在DOM可能不會在你運行該腳本點已加載的HTML。

封裝的jQuery中你的JavaScript '上加載的DOM' 函數($(文件)。就緒(函數(){)將按如下解決這個問題,代碼。

$(document).ready(function() { 
    $('.lazy_content').on("load", function() { 
    data_url = $(this).attr("data-url"); 
    data_id = $(this).attr("data-target-id"); 

    $.ajax({ 
     url: data_url, 
     type: "POST", 
     beforeSend: function() { 
     $(".loaderDiv").show(); 
     $("#" + data_id).html(""); 
     }, 
     success: function(data) { 
     $(data).each(function(index, el) { 
      $(".loaderDiv").hide(); 
      $("#" + data_id).html(data); 
     }); 
     } 
    }) 
    }); 
}); 
+0

我使用的是已有的document.ready我猜問題是我的事件 –

0

Load evnet只能在window,img元素中使用。

如果您使用jQuery負載功能,您可以使用回調函數。

$("#target").load("append.html",function(){ 
    // callback 
}); 

另一種方法是,在目標html下追加腳本。