Страница 1 из 1

Как сделать перехват действия!

СообщениеДобавлено: 09 мар 2012, 23:44
abitlord
Всем привет!
Есть такой вопрос ...
Есть некий скрипт который в html форме выделяет некий элемент.
Код: выделить все
<select multiple name="category_id" style="width: 100%; display: none;">
<option value="9">--Страны</option>
<option value="10">----Россия</option>
</select>

Например скрип выдели <option value="10" selected>----Россия</option>

как сделать так, что бы некий-другой скрипт, перехватил данное событие?
ну или как сделать так, что бы распечатать все события которые совершаются?

Re: Как сделать перехват действия!

СообщениеДобавлено: 10 мар 2012, 11:45
zandroid
Железный вариант - это отслеживать таймером текущее значение, но этот вариант самый плохой - много ресурсов потребляет (в сравнении с остальными). Более правильный вариант найти где этот обработчик назначается, подумать что именно надо и как лучше это сделать.

Re: Как сделать перехват действия!

СообщениеДобавлено: 14 мар 2012, 00:13
abitlord
так а если я знаю какое событие и где должно произойти ... то я могу с помощью тоже
Код: выделить все
.bind()
это реализовать ?
Или использовать какую то другую функцию ?

Re: Как сделать перехват действия!

СообщениеДобавлено: 14 мар 2012, 00:27
XelaNimed
Вы можете использовать и .bind(), и .on().
Если я правильно понял, что Вы хотите получить, то Вам с одной стороны нужно изменять состояние multi select'a, а с другой это состояние отслеживать. В этом случае добавляйте обработчик события ( в Вашем случае "select" ) и в функции обратного вызова обрабатывайте как Вам заблагорассудится.

Re: Как сделать перехват действия!

СообщениеДобавлено: 15 мар 2012, 12:52
abitlord
Так предположим ...

Есть такой HTML код
Код: выделить все
<ul id="category_id">
<li rel="9">--Страны</li>
<li rel="10">----Россия</li>
</ul>
<select multiple name="category_id" style="width: 100%; display: none;">
<option value="9">--Страны</option>
<option value="10">----Россия</option>
</select>


и есть такой код JS
Код: выделить все
$(document).ready(function(){
$('#category_id').find('li').click(function() {
var id = $(this).attr('rel');
$('select[name=category_id]').find('option[value='+id+']').attr('selected','selected');
return false;
})
});


Как мне сделать так, что бы перехватить данное событие ... по выделению SELECTED.
Было предложено проверять с совершено ли действие (запросами через некий промежуток времени), но это не годится в связи с большой нагрузкой на браузер ...

PS. данный код приведенный мною может работать не правильно ... так как написан тут как пример ...

Re: Как сделать перехват действия!

СообщениеДобавлено: 15 мар 2012, 15:29
zandroid
Если код сам не инициирует никакое событие и нет никакой возможности в него вмешаться (в runtime или исправить его source) - то кроме как по таймеру, никак.
Поэтому я и написал, что важны детали. Может быть вы что-то не то делаете, а может до вас что-то не то сделали (в идеологическом плане)...

Re: Как сделать перехват действия!

СообщениеДобавлено: 15 мар 2012, 17:20
XelaNimed
Посмотрите это
Я в правильном направлении Вас понимаю?!

Re: Как сделать перехват действия!

СообщениеДобавлено: 15 мар 2012, 18:04
abitlord
XelaNimed писал(а):Посмотрите это
Я в правильном направлении Вас понимаю?!

Да ... оно самое !
:)

Re: Как сделать перехват действия!

СообщениеДобавлено: 15 мар 2012, 19:30
abitlord
Всем спасибо !! Проблема решена !