Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Помогите разобраться почему не работает код (https://javascript.ru/forum/jquery/39426-pomogite-razobratsya-pochemu-ne-rabotaet-kod.html)

dva 29.06.2013 17:24

Помогите разобраться почему не работает код
 
Здравствуйте.

У меня есть код selector.js

//инициализация плагина
(function ($) {
    jQuery.fn.select2_e = function () {
        $(this).each(function (n, element) {
            //тут превращаем select в input              
            var $element = $(element),
                choices = $element.find('option').map(function (n, e) {
                    var $e = $(e);
                    return {
                        id: $e.val(),
                        text: $e.text()
                    };
                }),
                width = $element.width(),
                $input = $('<input>', {
                    width: width
                });
            $element.hide().after($input);
            //превратили

            $input.select2({
                query: function (query) {
                    var data = {}, i;
                    data.results = [];

                    // подтставим то что искали

                    if (query.term !== "") {
                        data.results.push({
                            id: query.term,
                            text: query.term
                        });
                    }

                    // добавим остальное

                    for (i = 0; i < choices.length; i++) {
                        if (choices[i].text.match(query.term) || choices[i].id.match(query.term)) data.results.push(choices[i]);
                    }

                    query.callback(data);
                }
            }).on('change', function () {
                var value = $input.val();
                $element.empty();
                $element.append($('<option>').val(value))
                $element.val(value).trigger('change');
            });;
            return $element;
        });
        return this;
    }
})(jQuery);


Тут говориться что он инициализируется как плагин, я его добавил в html.

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >

<link rel="stylesheet" type="text/css" href="test.css"/>

[B]<script type="text/javascript" src="jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="selecter.js"></script>[/B]

<script type="text/javascript">

[I]$(document).ready(function() {
//пример использования
jQuery(function ($) {
    console.log($('.testclass').select2_e().on('change', function () {
        alert(this.value)
    }));
});

});[/I]
</script>

</head>

<body>

<select id='test' class="testclass">
    <option value="1">test1</option>
    <option value="2">test2</option>
    <option value="3">test3</option>
    <option value="4">test4</option>
</select>

</body>

</html>


и это сss:

.testclass {
    width: 300px;
}


Должен появиться input в селекторе но ничего не происходит, только один селектор активен. Должно быть как здесь http://jsfiddle.net/oceog/x4XQp/10/

danik.js 29.06.2013 17:35

В консоли браузера ошибок нет?

рони 29.06.2013 17:39

Цитата:

Сообщение от dva
//инициализация плагина

а вы разницы между величиной строк вашего кода и того незамечаите? там 60 а у вас 33

dva 29.06.2013 17:58

Ребят я жутко извеняюсь, спешил. Все поправил. Ошибок в браузере не выдает


Часовой пояс GMT +3, время: 03:06.