Здравствуйте.
У меня есть код 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/