2014-02-21 91 views
0

我正在使用以下jquery腳本在成功的ajax請求後加載另一個url。jquery iframe加載動態

$(document).ready(function() { 
    var $loaded = $("#siteloader").data('loaded'); 
    if($loaded == false){ 
     $("#siteloader").load(function(){ 
      if(ad_id != undefined){ 
       var req_url = base_url+'ajax/saveclick/'+ad_id+'/'; 
       var preloader = $('#preloader'); 
       var reqloader = $('#reqloader'); 

       $.ajax({ 
        url: req_url, 
        type: 'GET', 
        beforeSend: function() { 
         $(preloader).show(); 
         $('#adloading').remove(); 
        }, 
        complete: function() { 
         $(preloader).hide(); 
        }, 
        success: function(result) { 
         $(reqloader).html(result); 
         $("#siteloader").data("loaded", "true"); 
         $("#siteloader").attr("src", base_url+'userpanel/cpa/'+ad_id+'/'); 
        } 
       }); 
      } 
      else{ 
       $('#reqloader').html('<span class="text-danger">Invalid Approach!</span>'); 
      } 

     }); 
    } 
}); 

<iframe src="remote_url" id="siteloader"></iframe> 

我不想在IFRAME SRC變化後阿賈克斯再次運行,我也試圖通過$("#siteloader").data("loaded", "true");

阻止它請建議我這樣做的一個很好的解決方案。謝謝。

回答

0

如果你只想要執行的「負荷」處理一次
只需添加一行

$("#siteloader").unbind('load'); 

成功回調。

如果你想在每個SRC變化執行的「負荷」的處理程序,你可以做這樣的事情:

$(document).ready(function() { 
     $("#siteloader").load(function() { 
      // Move the test in the event Handler ... 
      var $loaded = $("#siteloader").data('loaded'); 
      if ($loaded == false) { 
       if (ad_id != undefined) { 
        var req_url = base_url + 'ajax/saveclick/' + ad_id + '/'; 
        var preloader = $('#preloader'); 
        var reqloader = $('#reqloader'); 

        $.ajax({ 
         url: req_url, 
         type: 'GET', 
         beforeSend: function() { 
          $(preloader).show(); 
          $('#adloading').remove(); 
         }, 
         complete: function() { 
          $(preloader).hide(); 
         }, 
         success: function (result) { 
          $(reqloader).html(result); 
          $("#siteloader").data("loaded", "true"); 
          $("#siteloader").attr("src", base_url + 'userpanel/cpa/' + ad_id + '/'); 
         } 
        }); 
       } 
       else { 
        $('#reqloader').html('<span class="text-danger">Invalid Approach!</span>'); 
       } 

      } 
     }); 
    }); 

也許你ad_id變量沒有明確定義/更改...

+0

謝謝它現在似乎正在工作。 – seoppc

+0

@seoppc如果它現在可用,請將問題標記出來 – mimiz