用于在 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 插件中设置样式以消除冲突的选择器的主要内容,如果未能解决你的问题,请参考以下文章

Jquery中设置样式属性

jquery 直接在CSS函数中设置三元运算符

用于在 Chrome 中设置 HTML5 日期输入日历样式的 CSS

如何在引导表中设置单选按钮或复选框的样式?

bootstrap和jQuery.Gantt的css冲突问题

在 jQuery 中设置“接受”标头以在 iframe 中检索数据