2014-10-29 53 views
1

这里工作是一个fiddle例如

我有麻烦了$(this)与jQueryUI的自动完成信号源功能的工作。 控制台显示在发送Ajax请求之前,搜索输入无法获取其数据属性“名称”。有没有办法将变量“name”传递给data

$('.input').autocomplete({ 
    source: function (request, response) { 
     var name = $(this).data('name'); 
     console.log(name); 
     $.ajax({ 
      url: url, 
      dataType: "json", 
      data: { 
       'q': request.term, 
       'field': name 
      }, 
      success: function (data) { 
       response($.map(data.query.results.json.json, function (item) { 
        return { 
         label: item.name, 
        } 
       })); 
      } 
     }); 
    }, 
    minLength: 2, 
    select: function (event, ui) { 
     $(this).val(ui.item.label); 
     $(this).val(ui.item.label); 
    }, 
    open: function() { 
     $(this).autocomplete("widget").width(400) 
    } 
}); 
+0

我想,如果你控制台登录'$(这)'你会得到自动完成对象。 – vaso123 2014-10-29 19:05:12

回答

1

您应该使用this.element来访问相应的输入元素。 this点自动完成实例本身:

var name = $(this.element).data('name');