Jquery ui Plone灵巧关系选择小部件与jQueryUI冲突?

Jquery ui Plone灵巧关系选择小部件与jQueryUI冲突?,jquery-ui,plone,jquery-ui-autocomplete,dexterity,Jquery Ui,Plone,Jquery Ui Autocomplete,Dexterity,我的自定义类型中的RelationChoice小部件工作正常,直到启用了collective.js.jqueryui autocomplete,然后它停止工作,即停止进行关系查找;在字段中键入时不会发生任何情况 (在网站的另一部分,我使用collective.js.jqueryui autocomplete和谷歌地图API,在用户填写地址字段时返回地址建议。) 当前的解决方法是在我想要使用RelationChoice小部件时禁用collective.js.jqueryui autocomplet

我的自定义类型中的RelationChoice小部件工作正常,直到启用了
collective.js.jqueryui autocomplete
,然后它停止工作,即停止进行关系查找;在字段中键入时不会发生任何情况

(在网站的另一部分,我使用
collective.js.jqueryui autocomplete
和谷歌地图API,在用户填写地址字段时返回地址建议。)

当前的解决方法是在我想要使用RelationChoice小部件时禁用
collective.js.jqueryui autocomplete
(然后重新启用)。这不是个好办法

  • Plone 4.2.1.1
  • collective.js.jqueryui 1.8.16.9(也尝试了1.10.0.1-相同的冲突)
  • plone.app.Dextrity 1.2.1
独立地:

  • 如果我只启用
    plone.formwidget.autocomplete/jquery.autocomplete.min.js
    我的谷歌地图查找不会启动(请参见下面的代码),但RelationChoice小部件可以工作
  • 如果我只启用了
    collective.js.jqueryui autocomplete
    我的谷歌地图查找工作正常,但是RelationChoice小部件不会启动
代码示例:



。。。
我是否可以在上面的代码中重新使用
plone.formwidget.autocomplete/jquery.autocomplete.min.js
?我不知道如何让它启动我的谷歌地图查找。。。?(
collective.js.jqueryui autocomplete
在启用时成功激活上述功能。)

更新(根据问题的更新):

参考Martin的教程和,Dextrity拉plone.formwidget.contenttree,拉plone.formwidget.contenttree,拉plone.formwidget.autocomplete

后者包括jQuery的自动完成源代码,collective.js.jqueryui也是如此,由您的地图产品提供。很可能发生冲突

试试这个:

  • 取消选中“++resource++plone.formwidget.autocomplete/jquery.autocomplete.min.js”,然后点击底部的保存。确保调试模式已打开(复选框位于最上方)


    • Contenttree小部件基于自动完成小部件

      自动完成小部件与jqueryui自动完成插件冲突

      使用collective.js.jqueryui,您可以使用portal\u注册表取消激活自动完成插件

      ploneformwidget.autocomplete被jqueryui破坏了,这让很多年过去了。plone.formwidget.autocomplete有一个分支,它基于jqueryui(分支2.0),但我还没有用contenttree小部件测试它


      所以要解决您的问题:转到jqueryui控制面板并取消选中“自动完成插件”。

      好的,我已经完成了。至少在Plone 4.3上

      第一部分是,在包中完全启用jQueryUI效果。存在命名空间问题和缺少的文件,这导致
      。effects()不是函数

      首先,将正确的jQueryUI版本cd下载到其中并

      jquery=/buildout_dir/parts/omelette/collective/js/jqueryui
      
      cp jquery.ui.effect.min.js $jquery/js/jquery.ui.effect.core.min.js
      
      然后将cd放入
      $jquery
      目录,并将所有效果包转换为正确的命名空间。例如:

      mv js/jquery.ui.effect-highlight.min.js js/jquery.ui.effect.highlight.min.js
      
      然后将所有出现的
      效果
      替换为
      效果
      。在vim中使用

      :1,$s/effects/effect/g
      
      其次,要启用基于jQuery的自动完成小部件,请将cd放入构建的src目录,然后

       git clone https://github.com/plone/plone.formwidget.autocomplete.git plone.formwidget.autocomplete
       git checkout jqueryui-autocomplete
      
      然后编辑您的
      版本.cfg
      。对我来说

      plone.formwidget.autocomplete >= 2.0
      
      工作。然后编辑您的
      buildout.cfg
      并在
      zcml
      develope
      下添加包。我做了一个构建,但它可能足以重新启动Zope。最后一步显然是访问门户安装程序并重新安装产品

      更新

      如评论中所述,它没有完全发挥作用。我还不得不修改一个.js文件,即
      plone.formwidget.autocomplete
      包中的
      autocomplete.js
      。结果如下

      这使得RelationChoiceWidget和AutocompleteWidget以一种形式一起工作。我喜欢


      我还在github上为jQueryUI包提交了一份错误报告。

      请包括一些相关代码的练习。toutpt的答案能解决您的冲突吗?太糟糕了,toutp的答案和我的答案都帮不上忙了,似乎您需要进行更紧密的js调试会话。你能再继续吗?你能粘贴关于google小部件的js行吗?我有一个解决办法。我考虑将jqueryui库更改为“select2”库,但不想重写我的google maps address lokup函数,因此我在jsregistry.xml中添加了一个条件,以便在表达式中不调用collective.js.jqueryui.custom.min.js=“python:'my-page-with-relationChoice-widget'不在context.portal\u url.getRelativeContentPath(context)中”“因此relationChoice表单小部件中的autocomplete功能没有冲突希望每页的额外开销可以,我知道这不是很好,但现在这是一个解决办法。这与我之前给出的答案相同,只是你建议推迟Plone core jQuery选项,而不是p.f.autocomplete的js。我认为,后者应该删除包含的js,同时使用给定的jQuery包->避免冗余和skcript-conflicts.Conflict reported:OK我在zmi中禁用了autocomplete,但是小部件不起作用。我在zmi中重新启用了自动完成js,并关闭了jquery ui自动完成,但随后我的google地图断了。我注意到zmi js_注册表中的js自动完成有一个“限制到经过身份验证的用户”标志。理论上,如果我关掉这个,那么我也可以为我的谷歌应用激活这个自动完成,问题是我不知道这个小部件使用什么激活。。。jquery用户界面使用
      .autocomplete
      ,但我不知道如何激活relationWidget自动完成。。。我尝试创建输入类
      autocompleteInputWidget
      ,但它没有在输入时触发autocomplete事件。
       git clone https://github.com/plone/plone.formwidget.autocomplete.git plone.formwidget.autocomplete
       git checkout jqueryui-autocomplete
      
      plone.formwidget.autocomplete >= 2.0