首页 新闻 会员 周边 捐助

jquery autocomplete如何绑定?

0
悬赏园豆:30 [已解决问题] 解决于 2014-05-22 15:49

指的是父元素绑定到子元素上(如何表达还真不知道),代码如下:

$(parentElement).on("click",childrenElement,function(){

//do something here

});

现在我想把autocomplete也做这样的绑定,问题是autocomplete是要设定数据源等等,如何处理呢?

happydaily的主页 happydaily | 菜鸟二级 | 园豆:260
提问于:2014-05-15 15:19
< >
分享
最佳答案
0
$(parentElement).on("click",childrenElement,function(){
    var $self=$(this);//缓存子元素
    if($self.data('autocomplete')!='true'){
        $self.autocomplete({//大概这样
            
        });
    }
});
我觉得吧,你是想给动态元素增加自动完成功能;
一般的做法是:添加动态元素后,调用一次注册,而不是采用事件冒泡的方式。
收获园豆:20
幻天芒 | 高人七级 |园豆:37207 | 2014-05-16 10:00

是给动态元素绑定自动完成功能。我在书上看到不能每个都绑定,那样效率太低了。

happydaily | 园豆:260 (菜鸟二级) | 2014-05-16 10:46

@happydaily: 你这做法要冒泡那么多层。单个绑定效率并不低。

幻天芒 | 园豆:37207 (高人七级) | 2014-05-16 13:40
其他回答(4)
0
$(function() {
    var availableTags = ["123","456"];
    $( "#tags" ).autocomplete({
        source: availableTags
    });
}

availableTags的获取方法 要参考你的需求

收获园豆:5
sam.c | 园豆:148 (初学一级) | 2014-05-15 15:36

不是这个,这个我会,注意看我的示范代码,如果把click换成autocomplete,Source如何赋值呢?

支持(0) 反对(0) happydaily | 园豆:260 (菜鸟二级) | 2014-05-15 16:01

@happydaily: 我觉着差不多啊

$(parentElement).on("autocomplete",function(event, mySource){

  //do something here

  source: mySource

});

 
支持(0) 反对(0) sam.c | 园豆:148 (初学一级) | 2014-05-15 16:43

@小欢乐: {
        source: availableTags
    }

这是传的个对象,

function(event, mySource){

  //do something here

  source: mySource

});

这个source传给谁啊?

支持(0) 反对(0) happydaily | 园豆:260 (菜鸟二级) | 2014-05-15 16:54
0

可以试试把autocomplete封装在一个javascript函数中,然后click的时候调用看看

砾岩 | 园豆:203 (菜鸟二级) | 2014-05-15 16:12
0

好奇怪的想法。

$(parentElement).on("click",childrenElement,function(){

//do something here

});

这句话是注册事件,当点击事件发生时,会执行那个函数。再来看:

$( "#tags" ).autocomplete({ source: availableTags });

这句话是使得#tags元素具有自动补全的能力,它本身又不是一个事件,应该相当于//do something here

而我们一般都希望在页面加载的时候就让那个元素就具有补全的能力,所以可以这样写:

$(function() {

    $( "#tags" ).autocomplete({ source: availableTags });

});

如果你想在其他事件发生的时候,比如点击事件,那也可以,不过有个问题就是点击事件是可能多次发生的,那么多次掉用 $( "#tags" ).autocomplete({ source: availableTags });  可能会导致副作用

收获园豆:5
ThreeTree | 园豆:1490 (小虾三级) | 2014-05-15 20:18
1
 1     $("#tableCommingDeals").on("click", ".CommingSKU", function () {
 2                 $(this).autocomplete({
 3                     minLength: 0,
 4                     source: projects,
 5                     focus: function (event, ui) {
 6                         $(this).val(ui.item.label);
 7                         return false;
 8                     },
 9                     select: function (event, ui) {
10                         $(this).val(ui.item.label);
11                         return false;
12                     }
13                 })

完美解决

过冬麦子 | 园豆:202 (菜鸟二级) | 2015-10-21 23:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册