Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制jQuery UI自动完成移动?_Jquery_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

强制jQuery UI自动完成移动?

强制jQuery UI自动完成移动?,jquery,jquery-ui,jquery-ui-autocomplete,Jquery,Jquery Ui,Jquery Ui Autocomplete,我在我的网站上使用jqueryui中的autocomplete,它工作得很好,但我正在重新设计系统,所以我需要对此进行更改。当前,自动完成在输入的底部打开。但是,我不能强迫它使用自定义位置,无论是jQuery还是CSS 我试过这个: $('#search').autocomplete('widget').css({ 'margin-left': -200 //or left: 200 }); 我还试着添加!对规则很重要,但没有影响

我在我的网站上使用jqueryui中的autocomplete,它工作得很好,但我正在重新设计系统,所以我需要对此进行更改。当前,自动完成在输入的底部打开。但是,我不能强迫它使用自定义位置,无论是jQuery还是CSS

我试过这个:

    $('#search').autocomplete('widget').css({
        'margin-left': -200
        //or
        left: 200
    });
我还试着添加!对规则很重要,但没有影响

我还尝试将css添加到.ui autocomplete,但没有任何结果

似乎当框打开时,它会覆盖所有这些更改。你知道吗?我真的需要一个解决办法

谢谢,
Martti Laine

您可以为open()提供一个可选函数来执行此操作:

例如:

 $("#search").autocomplete({ 
                            open: function(event, ui) 
                                  {$(this).next().css('left',
                                    function(index, value) {return 200+parseInt(value)});
                                  }
    });

…将位置设置为正常位置左侧200px的位置

我的自动完成在DOM结束时打开。根本不接近触发器输入。。。
我正在考虑查看触发输入的索引,然后找到自动完成对应的索引,但我不知道为什么-它对我来说似乎不够健壮

与NeoSwf一样,我发现我的autocomplete被插入到DOM底部附近。取决于
$(this).next()
找到它是易碎的。我建议不要使用
这个
,而是使用更具体的东西,比如
'ul.ui autocomplete'
。以下是我版本的咖啡脚本:

jQuery ->
  $('#search').autocomplete
    open: (event, ui) ->
      $('ul.ui-autocomplete').css('left', (index, value) ->
        return 200 + parseInt(value))

这并不能解决您的问题,但为了将来,很高兴知道jQuery的.css()-@hereticalselfWorks中的marginLeft是marginLeft,只是修改了如下选择器:$('search').autocomplete('widget').css();永远不要使用
parseInt(foo)
。始终使用
parseInt(foo,10)
(假设您处理的是base10,您就是。我也是这样。取决于$(this)。next()看起来非常脆弱。