невозможно использовать плагин toChecklist - PullRequest
5 голосов
/ 03 июня 2011

кто-нибудь использовал плагин 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 ]

7 голосов
/ 08 июля 2011

Плагин 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();
    

Подробнее см. http://forum.jquery.com/topic/jquery-change-innerhtml.

0 голосов
/ 07 июня 2011

Хорошо, проблема, с которой вы сталкиваетесь, может быть легко решена и существует здесь:

<script type="text/javascript">
    $(function() {
        $('mySelectBox').toChecklist();
    });
</script>

Я думаю, что это вызывает проблему, поскольку браузер, возможно, не полностью загрузил DOM до выполнения кода, поэтому jQuery не может выполнять действия с чем-то, чего нет в DOM.

Измените его на следующее, и все будет работать нормально:

<script type="text/javascript">
    $(document).ready(function () {
        $('#mySelectBox').toChecklist();
    });
</script>

Метод .ready () полностью ожидает загрузки DOM перед выполнением. Кроме того, вам необходимо добавить префикс любого идентификатора элемента к хешу ("#"), чтобы указать jQuery, что они являются идентификаторами, а не каким-либо другим типом идентификатора (таким как классы и т. Д.).

Я понимаю, что прошло несколько дней с тех пор, как вы задали вопрос, но, надеюсь, это поможет.

0 голосов
/ 03 июня 2011

Ну, проблема в том, что у вас есть два <html> тега:

<html xmlns="http://www.w3.org/1999/xhtml">
<html>

Это предотвратит проверку вашей страницы и, возможно, вызовет некоторые другие проблемы.Удалите второй тег <html>, если вы планируете придерживаться XHTML (как вы, наверное,).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...