Показать сообщение отдельно
  #1 (permalink)  
Старый 29.06.2013, 17:24
dva dva вне форума
Новичок на форуме
Отправить личное сообщение для dva Посмотреть профиль Найти все сообщения от dva
 
Регистрация: 29.06.2013
Сообщений: 2

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

У меня есть код 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/

Последний раз редактировалось dva, 29.06.2013 в 17:57.
Ответить с цитированием