Всем привет. Учусь разрабатывать плагины для jQuery.
Поставил перед собой задачу: разработать плагин выпадающего списка древовидной структуры. При инициализации должен подгружаться первый уровень, при клике на пункт выпадающего списка должны подгружаться дочерние и так далее пока не дойдем до элемента у которого нет дочерних элементов.
Подобный функционал реализован на
mamondo.ru на главной странице при выборе страны, области, города.
Хочу чтобы данный плагин можно было инициализировать следующим образом и после инициализации обрабатывались все события:
$("#selector").dropdown({<br>
'url' : '/result.json' //скрипт возвращает JSON списка (реализован тут: http://innovatis.ru/php/service.php?id=3)<br>
});<br>
Не пойму как в плагине повесить обработчика событий.
Получается будут следующие события:
1. клик по селектору -> .show()
2. клик по любой части страницы кроме селектора -> .hide()
3. клик по элементу из выпадающего списка -> ajax-загрузка json-массива при помощи $.getJSON (если результат != [ ], тогда отображаем новые пункты выпадающего списка, иначе передаем значение в форму )
Сейчас реализован простейший функционал (показать/скрыть). Для этого приходится писать такой javascript:
$(document).ready(function() {<br>
$("#rayon").dropdown();<br>
$("#rayon a").click(function() {<br>
$("#rayon").dropdown('toggle');<br>
return false;<br>
}); <br>
$("div:not(#rayon)").click(function(){<br>
$("#rayon").dropdown('hide');<br>
});<br>
});<br>
А в идеале хочется получить это:
$(document).ready(function() {<br>
$("#rayon").dropdown({<br>
'url' : 'result.json'<br>
});<br>
});<br>
Это не красиво и теряется весь смысл разработки плагина. Как сделать так, чтобы все события обрабатывались внутри плагина?
Быдлокод:
html,
css,
js,
PHP