Javascript 如何向jquery插件添加结构样式

Javascript 如何向jquery插件添加结构样式,javascript,jquery,html,css,jquery-plugins,Javascript,Jquery,Html,Css,Jquery Plugins,我刚刚编写了一个jquery插件,可以在表上进行操作(比如网格插件) 插件添加了一些样式,比如overflow:hidden到单元格,边框到表格和单元格(为了保持统一的边框宽度,我添加了:.MyTable{border width:0 1px 1px;}和.MyTable>tr>td{border width:1px 1px 0} 现在我想知道如何以及在何处放置此css样式。 我可以将它们放在外部css文件中,但随后我强制用户将.css文件添加到她的页面中。为了让所有用户,甚至新用户都可以访问插

我刚刚编写了一个jquery插件,可以在表上进行操作(比如网格插件)

插件添加了一些样式,比如
overflow:hidden到单元格,边框到表格和单元格(为了保持统一的边框宽度,我添加了:
.MyTable{border width:0 1px 1px;}
.MyTable>tr>td{border width:1px 1px 0}

现在我想知道如何以及在何处放置此css样式。
我可以将它们放在外部css文件中,但随后我强制用户将.css文件添加到她的页面中。为了让所有用户,甚至新用户都可以访问插件,这可能是一个障碍。用户可能会忘记添加css文件,甚至更改其内容以实现某些目标,这将使插件无法正常工作。
此外,我想让用户能够更改内容(如边框的宽度)。如果我将css放在外部文件中,用户可以自己更改任何需要的内容

另一个选项是,我也可以直接在jquery元素上分配样式(使用elem.css(…)命令)。这样,用户就不必为了正常工作而处理css文件,也不必为了允许更改样式(如边框)而处理css文件我可以给插件添加一个选项。但是,这样我就可以创建无效的代码,并在行为和设计之间进行融合

是否有其他可能向jquery插件添加样式?
最好的方法是什么


我说的不是应该决定颜色或字体的样式,而是我制作的结构所必需的样式!

您可以动态地将
元素添加到页面中。类似以下内容:

$('body{背景色:红色;颜色:白色;}')。appendTo('head');
上面的示例只是您可以动态创建DOM元素

此外,这里有人试图做类似的事情(尽管出于所有错误的原因):


$(“#选择器{/*样式*/}”).appendTo('head');
或:
$(''.text(“#选择器{/*样式*/}”).appendTo('head');
@Rob W:但是如果这个插件执行两次,这些样式会再次加载。。这就是常识的切入点;)将一个非常独特的ID附加到
标记上,然后在插入样式表之前检查此ID的存在。@Rob W:您的意思是为标记提供ID吗?
if(!$(''#rw jq plugin stylesheet').length){$('#选择器{/*样式*/}')。例如,appendTo('head');}
。我看到了这个方法。这种方式可能会导致样式多次添加到头部。如果插件执行两次,这些样式会再次添加到头部。为什么你提出的方法是最好的方法?不一定。你可以(应该)给你的
标记一个带有插件名称空间的
id
属性。然后在添加
元素之前检查该
id
是否存在。这是最好的,因为它避免了外部样式表的需要,并且是可重用的CSS(与使用内联CSS不同,包括jQuery的
.CSS()
函数)
$('<style>body { background-color: red; color: white; }</style>').appendTo('head');