将参数传递给泛型函数中的ajax

时间:2014-07-24 22:30:07

标签: javascript jquery ajax

这让我发疯:

我可以成功地将参数传递给此函数,并在警报中显示它们。如果我在函数中定义值,我也可以通过id填充div。

function getStuff( req, elementid ) {
  //var req = 'slider';
  //var elementid = '#slider';

  //var req = 'thumbnails';
 //var elementid = '#thumbnails';
  $.ajax({
      async: false,
      url: '/update',
      contentType: 'text/html',
      data: { putski: req },
      type: 'GET',
      dataType: "html",
      success: function(stuff) {
              $( elementid ).html(stuff);
              alert(req+elementid)
   },

   error: function( xhr, status, errorThrown ) {
        alert( "Sorry, there was a problem!" );
        ( "Error: " + errorThrown );
        console.log( "Status: " + status );
        console.dir( xhr );
   },

   complete: function( xhr, status ) {
        return false;
   }

  });
};

$(document).ready( getStuff( 'thumbnails', '#thumbnails' ) );  // alert shows    thumbnails#thumbnails but div does not populate.

以下变体是填充的,应该排除我所描述的问题以外的其他问题。

function getStuff( req, elementid ) {
  var req = 'slider';                  //uncomment these definitions and the div populates
  var elementid = '#slider';

  //var req = 'thumbnails';
  //var elementid = '#thumbnails';
  $.ajax({
      async: false,
      url: '/update',
      contentType: 'text/html',
      data: { putski: req },
      type: 'GET',
      dataType: "html",
      success: function(stuff) {
              $( elementid ).html(stuff);
              alert(req+elementid)
   },

   error: function( xhr, status, errorThrown ) {
        alert( "Sorry, there was a problem!" );
        ( "Error: " + errorThrown );
        console.log( "Status: " + status );
        console.dir( xhr );
   },

   complete: function( xhr, status ) {
        return false;
   }

  });
};

$(document).ready( getStuff );  // populated using the values defined at the top.

2 个答案:

答案 0 :(得分:0)

您正在将苹果与橙子进行比较

在第二个版本中,您可以尝试以下操作:

var req = 'thumbnails';                
var elementid = '#thumbnails';

如果这不起作用,那么您知道服务器代码未正确处理“缩略图”参数,或者未定义元素ID“#thumbnails”。我怀疑问题在于传递参数而不是在函数中设置它们。

答案 1 :(得分:0)

好的,我修好了但是我不得不承认,我并不真正理解这种行为。我注释掉了“async:false”,它开始使用缩略图。我首先添加了这一行,因为滑块在没有它的情况下不起作用。 :p也许有人可以对此有所了解?