加载ajax而不单击按钮

时间:2013-05-21 16:17:10

标签: ajax jquery

我有一个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>

HTML中的DIV:

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

Javascript会在这里打印数据。感谢。

4 个答案:

答案 0 :(得分:5)

只需删除对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 :(得分: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();
});

答案 2 :(得分: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);
                }
            }
        }
    });
});

答案 3 :(得分:0)

只需移除$('#submitCars').click( function(event)部分,让整个事物浮动在$(document).ready(function()