Jquery ui Plone灵巧关系选择小部件与jQueryUI冲突?
我的自定义类型中的RelationChoice小部件工作正常,直到启用了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
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
- 如果我只启用
我的谷歌地图查找不会启动(请参见下面的代码),但RelationChoice小部件可以工作plone.formwidget.autocomplete/jquery.autocomplete.min.js
- 如果我只启用了
我的谷歌地图查找工作正常,但是RelationChoice小部件不会启动collective.js.jqueryui autocomplete
。。。
我是否可以在上面的代码中重新使用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