用于在 jquery 插件中设置样式以消除冲突的选择器
Posted
技术标签:
【中文标题】用于在 jquery 插件中设置样式以消除冲突的选择器【英文标题】:Selector for styling in jquery plugin to a void conflicts 【发布时间】:2018-04-07 15:34:33 【问题描述】:我是 jQuery 新手。我最近使用 jQuery UI 小部件工厂开发了一个插件 bu。它工作正常。我正在使用内联样式。但是对于大文件会变得复杂。
对于大型项目,我可以选择使用类。但是,如果有人想使用我的插件,他只需复制链接并使用它。但是,如果他的页面上有相同名称的类,那么它的页面将因为我的样式而被破坏。谁能指导我如何避免这种情况。 我希望你明白这一点。
谢谢
【问题讨论】:
您可以为您的类名使用“唯一”前缀。喜欢 myPlugin_Khushhal 这就是为什么你有 namespace 并且你可以使用my-unique-plugin-****
类(其中 **** 可以是你需要的任何类名)来减少这些机会
感谢您的回复。这是减少这些机会的唯一方法还是任何其他方式。
我不能确定,而且你没有向我们展示任何代码,所以这使得它更不可能回答。当然有办法 - 例如,您可以检查 jQuery.noConflict 的来源并在您的插件上实现类似的逻辑,但同样 - 太宽泛了...
【参考方案1】:
需要考虑的一些事项:
如果你的选择器过于具体,比如
$("ul > li > .foo ~ .bar");
它可能会因标记上的任何更改而中断。 但是,如果你不这样做,它会破坏你的用户风格。
正如评论所言,解决这个问题的更简单方法是在类上添加前缀,例如
<div class="my-plugin-container">
<span class="my-plugin-span"> "Hello World" </span>
(OR) <button class="my-plugin button"> </button>
</div>
如果您可以发布任何代码,我们可以为您提供进一步的帮助。我会根据你做的修改。
祝你好运
【讨论】:
谢谢,我认为这就是解决方案:)以上是关于用于在 jquery 插件中设置样式以消除冲突的选择器的主要内容,如果未能解决你的问题,请参考以下文章
用于在 Chrome 中设置 HTML5 日期输入日历样式的 CSS