我有:
<input name="ShowDeleted" type="checkbox" />
<label for="ShowDeleted">Show Deleted</label>
在我的JavaScript中,我有:
$('input[type=checkbox]').button();
我称之为jQuery的方式是:
<script src="http://www.google.com/jsapi"></script>
<script src="myGoodness.js"></script>
然后Javascript就是:
google.load("jquery", "1");
google.load("jqueryui", "1");
var myLoadCallback = function() {
$('input[type=checkbox]').button();
};
google.setOnLoadCallback(myLoadCallback);
问:为什么我没有看到jQuery UI样式复选框?是因为在加载jQuery之后但在jQuery UI加载之前调用了myLoadCallback吗?
在Firebug中,我看到输入中添加了类ui-helper-hidden-accessible。
答案 0 :(得分:2)
我能够让它像这样工作。
for
上的label
元素应该引用ID
。
我将您的input
更改为包含id="check"
,并将您的label
从for="ShowDeleted"
更改为for="check"
。
<input name="ShowDeleted" type="checkbox" />
<label for="ShowDeleted">Show Deleted</label>
到
<input id="check" name="ShowDeleted" type="checkbox" />
<label for="check">Show Deleted</label>
然后我调用以下Javascript来创建jquery复选框按钮。
$('#check').button();
如果这些更改不适合您,则建议您确保正确地提取jquery和jquery-ui js和css文件。
答案 1 :(得分:1)
这是因为<label>
元素的for属性必须引用复选框的id
属性,而不是name
。
在复选框中添加id
属性可以解决您的问题:
<input id="ShowDeleted" name="ShowDeleted" type="checkbox" />
<label for="ShowDeleted">Show Deleted</label>