Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.12.2012, 00:44
Аспирант
Отправить личное сообщение для Le-mark43 Посмотреть профиль Найти все сообщения от Le-mark43
 
Регистрация: 08.02.2012
Сообщений: 34

Как навесить Chosen() на подгружаемые ajaxом элементы?
Привет всем!
есть вопрос:
загружаю элементы Select через ajax.
надо стилизовать их с помощью плагина Chosen.

с помощью конструкции:
function loadPage(param,div){
	param=param.replace('#','');
	$.ajax({
		type: 'GET',
		url: param,
		dataType: 'html',
		success: function(msg){
			if(parseInt(msg)!=0){
			$('#'+div).html(msg);
			}
		}
	}); 
}


в нужный мне div вставляется вот это:
<select data-placeholder='Choose a Visitor...' class='chzn-select'>
<option value='1'>1</option>
<option value='2'>2</option>
</select>


обработчик вешаю на index.html:
$(document).ready(function(){
$(".chzn-select").chosen();
});

естественно не работает! в отличии от сформированного в DOM selecta

метод Live только для привязки функции к событию. а мне стало быть надо привязать функцию к объекту (если правильно понимаю терминологию)

через Livequery тоже почему то не отрабатывает:
$(document).ready(function(){
$(".chzn-select").livequery(function(){
$(".chzn-select").chosen();
});
});


Собственно вопрос: как повесить на динамически создаваемый объект функцию: $(".chzn-select").chosen(); в пределах начального скрипта, или index.html.

PS народ, через callback вешать обработчик сильно не охота.
ткните пальцем, возможно блин где то ошибка.

Последний раз редактировалось Le-mark43, 16.12.2012 в 00:50.
Ответить с цитированием
  #2 (permalink)  
Старый 16.12.2012, 01:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Le-mark43,
а в $.ajax success ??? получили данные обработали запустили плагин
Ответить с цитированием
  #3 (permalink)  
Старый 16.12.2012, 01:13
Аспирант
Отправить личное сообщение для Le-mark43 Посмотреть профиль Найти все сообщения от Le-mark43
 
Регистрация: 08.02.2012
Сообщений: 34

ну собственно под Callbackом я это и подразумевал
адски не хочется это делать. функция LoadPage используется много где, не хочется загрязнять
Ответить с цитированием
  #4 (permalink)  
Старый 16.12.2012, 03:00
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Le-mark43,
Мон привесить в контенте подгрузке после селекта пиксельную прозрачную картинку и вызвать событие onload по загрузке картинки
<select data-placeholder='Choose a Visitor...' class='chzn-select'>
<option value='1'>1</option>
<option value='2'>2</option>
</select>
<img href="http://s3.uploads.ru/i2qxo.gif" onload="$('this').prev('select').сhosen()"/>

Последний раз редактировалось Deff, 16.12.2012 в 03:15.
Ответить с цитированием
  #5 (permalink)  
Старый 16.12.2012, 21:30
Аспирант
Отправить личное сообщение для Le-mark43 Посмотреть профиль Найти все сообщения от Le-mark43
 
Регистрация: 08.02.2012
Сообщений: 34

любопытно... попробую!
Ответить с цитированием
  #6 (permalink)  
Старый 16.12.2012, 23:07
Аспирант
Отправить личное сообщение для Sanda Посмотреть профиль Найти все сообщения от Sanda
 
Регистрация: 12.10.2012
Сообщений: 90

Можно передавать третьим параметром в loadData callback-функцию и сделать что-то вроде:
success: (typeof callback === 'function') ? callback : function(msg) {
  if (parseInt(msg)!=0) {
    $('#'+div).html(msg);
  }
}

Конечно, загрязнение loadData, но один раз на все подобные случаи.
Либо ещё в таком варианте:
success: function(msg) {
  if (parseInt(msg)!=0) {
    $('#'+div).html(msg);
  }
  if (typeof callback === 'function') {
    callback(msg);
  }
}


Deff, проще уж сразу <script> передавать в контенте, чем такое.
Ответить с цитированием
  #7 (permalink)  
Старый 18.12.2012, 20:17
Аспирант
Отправить личное сообщение для Le-mark43 Посмотреть профиль Найти все сообщения от Le-mark43
 
Регистрация: 08.02.2012
Сообщений: 34

про <script> передавать в контенте замечание верное, так и поступаю сейчас.
но вот про Callback треьтим параметром не совсем въехал, где мне эту функцию определять? и как посылать?
в "msg" приходит HTML код, это уже как минимум не функция, стало быть я в "msg" должен эту функцию посылать, тогда в чем изюм в отличии от передачи <script> в контенте?
хотя возможно я тороплюсь, и все не правильно понял. вы не могли поподробнее описать суть.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выделить элементы одного уровня? InviS jQuery 1 20.08.2010 09:03
как удалить все элементы в Div e ? Arfey Общие вопросы Javascript 14 10.06.2010 11:50
Как удалить повторные элементы из массива? YISHIMITSY Общие вопросы Javascript 1 04.05.2010 00:04
Как поменять местами элементы в дереве элемента родителя? rar11 Events/DOM/Window 8 01.04.2009 18:53
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 09:03