-1

我正在为 jQuery UI 编写自己的 CSS。

基本上,我需要为单选按钮、复选框和常规按钮设置不同的样式。

这里的问题是添加到假小部件的 jQuery 类没有指定它是什么类型的按钮。

例如,假设我们有以下代码:

<input type="checkbox" name="location[]" id="location1" value="Somewhere" />
<label for="location1">Somewhere</label>

<script type="text/javascript">
    $(document).ready(function(){
        jQuery('input').button();
    });
</script>

jQuery 将这两个元素转换为:

<input type="checkbox" name="location[]" id="location1" value="Somewhere"
  class="ui-helper-hidden-accessible">

<label for="location1" aria-pressed="false" role="button" aria-disabled="false"
  class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only">
    <span class="ui-button-text">Somewhere</span>
</label>

如您所见,修改后的标签和生成的跨度没有任何类告诉我它是一个复选框(或单选/按钮)。

理想的解决方案将基于希望我没有注意到的一些课程。第二个最好的解决方案是对 jQuery UI 进行猴子补丁以向这些输入添加更好的类。最后可能的解决方案是破解 jQuery 文件……尽管我真的想避免这种情况。


请注意,我们不会容忍任何形式的狂热、非建设性的评论和类似的答案。问题是 jQuery UI,我不想听到你想到的 mootools、extjs 或任何流行的 l33t 库。

4

2 回答 2

2

您可以添加$('input:checkbox').addClass('ui-checkbox')以向输入添加ui-checkbox类以及类似的内容:

$('input:checkbox').each(function() {
  $('label[for="'+this.id.+'"]').addClass('ui-checkbox-label');
})

ui-checkbox-label类添加到复选框的所有标签

于 2012-01-23T11:31:17.603 回答
0

这是我带来的:

http://jsfiddle.net/fWPK6/

我们在创建按钮时使用 jQuery ui create方法来查找输入类型属性,然后将其添加到标签中。我必须指出一件非常重要的事情,每个输入字段必须有id并且相应的标签必须有正确属性。

如果您需要对类进行更多自定义,只需修改addClass(type)

于 2012-01-23T11:43:12.390 回答