首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery -将$(this)传递给没有var的回调函数

Jquery -将$(this)传递给没有var的回调函数
EN

Stack Overflow用户
提问于 2018-08-07 13:02:08
回答 1查看 44关注 0票数 2

你好,美好的社区!

我在jquery中遇到了访问函数中的$(this)的问题。通常,我会使用var来传递它,但在实际情况下,我不能定义任何var。

我不知道如何传递"source: function()“的参数。

我试过"source: function(请求、响应、self = $(this))“,但它不起作用。

代码语言:javascript
复制
$(".autocomplete-file-label").autocomplete({
  minLength: 3,
  source: function(request, response){
    var category = $(this).attr("data-category");
    if(category == '')
    {
      var source = 'http://www.example.com/?term=' + request.term;
    }
    else
    {
      var source = 'http://www.example.com/?term=' + request.term + '&type=' + category;
    }
    $.ajax({
      url: source,
      data : request.term,
      dataType: "json",
      type: "POST",
      success: function (data) 
      {
        response($.map(data, function( item ) {
          return item;
        }));
      }
    });

  },
  focus: function( event, ui ) {
   $(this).val( ui.item.label );
   return false;
  },
  select: function( event, ui ) {
   $(this).val( ui.item.label);
   $(this).next(".autocomplete-file-id").val( ui.item.id );
   return false;
  }
})

如果你有任何解决办法,我会非常高兴的!

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-07 13:08:11

需要元素中特定实例数据的插件的一种常见方法是在each循环中启动插件。

代码语言:javascript
复制
$(".autocomplete-file-label").each(function() {
  var category = $(this).attr("data-category");

  $(this).autocomplete({
      minLength: 3,
      source: function(request, response) {

        if (category == ''){
           ///.....
        }
      }
      //....
    }

  });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51727507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档