有人使用过toChecklist jquery插件,我正在尝试使用它并按照说明操作,但一切都没有发生,这是我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
<head>
<script type="text/javascript" src="jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="jquery.toChecklist.min.js"></script>
<!-- Stylesheet -->
<link type="text/css" rel="stylesheet" media="screen" href="jquery.toChecklist.min.css" />
<!-- Code to run toChecklist -->
<script type="text/javascript">
$(function() {
$('mySelectBox').toChecklist();
});
</script>
</head>
<body>
<select id="mySelectBox" multiple="multiple">
<option>Value 1</option>
<option>Value 2</option>
<option>Value 3</option>
</select>
</body>
</html>
答案 0 :(得分:7)
toChecklist插件使用两种旧的和过时的方式 访问innerHTML,例如:
var labelText = $(this).attr('innerHTML');
checkboxValue = this.innerHTML;
在jquery 1.6 +
中不可用所以你有2个选择让它适合你。
将toChecklist.js中的那些行(以及其他这样的行)更改为类似这样的行
var labelText = $(this).html();
checkboxValue = this.html();
有关详细信息,请参阅http://forum.jquery.com/topic/jquery-change-innerhtml。
答案 1 :(得分:0)
好吧,问题是你有两个 <html>
标签:
<html xmlns="http://www.w3.org/1999/xhtml">
<html>
这会阻止您的网页验证,并可能导致其他一些问题。如果您打算坚持使用XHTML(我猜你是),请删除第二个<html>
标记。
答案 2 :(得分:-1)
好的,您面临的问题可以很容易修复,并且存在于此处:
<script type="text/javascript">
$(function() {
$('mySelectBox').toChecklist();
});
</script>
我认为这会导致问题,因为浏览器在执行代码之前可能没有完全加载DOM,因此jQuery无法对DOM中不存在的内容执行操作。
将其更改为以下内容,一切正常:
<script type="text/javascript">
$(document).ready(function () {
$('#mySelectBox').toChecklist();
});
</script>
.ready()方法在执行之前等待DOM完全加载。此外,您需要使用散列(“#”)为任何元素Id添加前缀,以向jQuery指示它们是ID而不是其他类型的标识符(例如类等)。
我意识到你问这个问题已经过了几天,但希望这会提供一些帮助。