2013-05-21 83 views
1

我有一個jQuery的,通過單擊按鈕,使AJAX調用,但我希望他們沒有按下按鈕,它應該加載頁面時工作。加載阿賈克斯沒有點擊按鈕

這是按鈕

<div> 
    <form method="post" action=""> 
     <button value="cars" type="submit" id="submitCars">Get Cars</button> 
    </form> 
</div> 

按鈕的腳本通過AJAX

<script> 
<![CDATA[ 
$(document).ready(function(){ 
    $('#submitCars').click(function(event) { 
     event.preventDefault(); 
     var button = $(this).val(); 
     $.ajax({ 
     url: 'search-facet-form', 
     data: 'button=' + $(this).val(), 
     dataType: 'json', 
     success: function(data) 
     { 
      $('#wines').html(''); 

      if (button == 'cars') { 
      for (var i in data.facet_counts.facet_fields.manufacturer) { 
       if (!$.isNumeric(data.facet_counts.facet_fields.manufacturer[i])) { 
       var imagen = 'img/logo-cars/' + data.facet_counts.facet_fields.manufacturer[i] + '-logo-small.gif'; 
       d=document.createElement('img'); 
       $(d).attr('src', imagen); 
       } 
       $('#wines').append(d); 
      } 
      } 
     } 
     }); 
     return false; 
    }); 
    }); 
]]> 
</script> 

DIV在HTML:

<div id="wines" class="span-7 colborder"> 
</div> 

Javascript會在這裏打印數據。謝謝。

+0

所以你並不真正需要的按鈕,但只是想加載ajax作爲頁面加載的一部分? –

+0

只需將電話放在您想要的其他任何事件中...在您的情況下,當文檔被加載時... –

回答

4

內整個事情只是刪除調用click

$(document).ready(function(){ 
    var button = $('#submitCars').val(); //You may not even need this, you could just hard code this value 

    $.ajax({ 
    url: 'search-facet-form', 
    data: 'button=' + button , 
    dataType: 'json', 
    success: function(data) 
    { 
     $('#wines').html(''); 

     if (button == 'cars') { 
     for (var i in data.facet_counts.facet_fields.manufacturer) { 
      if (!$.isNumeric(data.facet_counts.facet_fields.manufacturer[i])) { 
      var imagen = 'img/logo-cars/' + data.facet_counts.facet_fields.manufacturer[i] + '-logo-small.gif'; 
      d=document.createElement('img'); 
      $(d).attr('src', imagen); 
      } 
      $('#wines').append(d); 
     } 
     } 
    } 
    }); 
}); 
+1

這是我的答案更清晰的版本。 –

+0

這就是答案。 :-) 謝謝。 –

0

只需卸下$('#submitCars').click(function(event)部分,並有漂浮的$(document).ready(function()

1

刪除點擊處理,代之以$(this).val()$('#submitCars').val();

$(document).ready(function() { 
    var button = $('#submitCars').val(); 
    $.ajax({ 
     url: 'search-facet-form', 
     data: 'button=' + $('#submitCars').val(), 
     dataType: 'json', 
     success: function (data) { 
      $('#wines').html(''); 

      if (button == 'cars') { 
       for (var i in data.facet_counts.facet_fields.manufacturer) { 
        if (!$.isNumeric(data.facet_counts.facet_fields.manufacturer[i])) { 
         var imagen = 'img/logo-cars/' + data.facet_counts.facet_fields.manufacturer[i] + '-logo-small.gif'; 
         d = document.createElement('img'); 
         $(d).attr('src', imagen); 
        } 
        $('#wines').append(d); 
       } 
      } 
     } 
    }); 
}); 
2

嘗試在插入元素時僅擊中DOM一次。如果您需要再提交按鈕:

function loadCars() { 
    $.ajax({ 
     url: 'search-facet-form', 
     data: 'button=' + $(this).val(), 
     dataType: 'json', 
     success: function (data) { 
      $('#wines').html(''); 
      var mycars = ''; 
      for (var i in data.facet_counts.facet_fields.manufacturer) { 
       if (!$.isNumeric(data.facet_counts.facet_fields.manufacturer[i])) { 
        var imagen = 'img/logo-cars/' + data.facet_counts.facet_fields.manufacturer[i] + '-logo-small.gif'; 
        mycars += '<img src="' + imgen + '"/>'; 
       } 
      } 
      $(mycars).appendTo('#wines');// hit the DOM only once with images 
     } 
    }); 
} 
$(document).ready(function() { 
    loadCars(); 
    $('#submitCars').click(function (event) { 
     event.preventDefault(); 
     loadCars(); 
     return false; 
    }); 
}); 

如果提交不需要按鈕,然後簡化部分,並刪除提交按鈕:

$(document).ready(function() { 
    loadCars(); 
}); 
+0

是的,這些都是我所做的改變。謝謝。 –

+0

請注意,我將成功處理程序更改爲只有一次DOM - 在for循環之外。 –

+0

該選項也有效。謝謝。 –