无法使用toChecklist插件

时间:2011-06-03 02:56:01

标签: jquery xhtml

有人使用过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>

3 个答案:

答案 0 :(得分:7)

toChecklist插件使用两种旧的和过时的方式 访问innerHTML,例如:

var labelText = $(this).attr('innerHTML'); 
checkboxValue = this.innerHTML;

在jquery 1.6 +

中不可用

所以你有2个选择让它适合你。

  1. 将您的jquery降级到1.5或更低版本。
  2. 将toChecklist.js中的那些行(以及其他这样的行)更改为类似这样的行

    var labelText = $(this).html(); 
    checkboxValue = this.html();
    
  3. 有关详细信息,请参阅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而不是其他类型的标识符(例如类等)。

我意识到你问这个问题已经过了几天,但希望这会提供一些帮助。