jQuery: событие по второму подрят клику
Пользуюсб быблиотекой жаба скриптов jQuery.
Помогите, пожалуйста, решить задачу: эфект .slideUp() должен исполнятся после второго подрят нажатия на объект, причем событие даблклик не подходит, допустим юзер кликает по объекту №1, а потом по объекту №2, потом опять по №1 и снова по объекту №1 и только после второго подрят клика на объект №1 событие .slideUp() исполняется. Как это сделать в jQuery. |
Цитата:
|
|
а потом надо объяснить, зачем обрабатывать именно второй клик
|
var last = null; document.onclick = function (event) { event = event || window.event; var target = event.target || event.srcElement; if (target == last) { ваша функцыя } last = target; }; |
сенкс Matre, но немного не то, наверное я плохо объяснил.
в коде который Вы дали: - событие происходит после третего клика; - после первого клика на объект - щет кликов обнуляется если кликнуть вне объекта, но после двох подрят кликов - не обнуляется; А нужно, чтобы событие возникало при клику на объект два разы подрят, даблклик не подходит, и при клику вне объекта, допустим на другой объект, подщет кликов обнулялся. Например: кликаем на объект №1, потом на №2, потом на объект №1 и опять на №1 - и по второму клику (не даблклик) на объект №1 событие исполняется, тоесть когда кликнули первый раз на №1, потом на №2, то щет кликов по первому объекту обнуляются. Помогите в этом. |
Цитата:
Заодно хороший пример того, как надо делать сайты. |
Matre, на всякий))
jQuery почти кроссбраузерная библиотека, поэтому ваш код можно сократить до 3-х строчек. <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ var $i = 0; $('a').click(function(){ $('body').toggleClass($i++ % 2 && 'body'); return false; }); }); </script> <style type="text/css"> .body {background:red;} </style> <a href="#">click</a> |
Цитата:
Цитата:
|
Помогите в следующем:
Есть код: <script type="text/javascript" src="jquery/jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("a#object1").click(function(){ $(this).slideUp("slow"); return false; }); $("a#object2").click(function(){ $(this).slideUp("slow"); return false; }); }); </script> <a href="#" id="object1">Объект №1</a> <br> <a href="#" id="object2">Объект №2</a> НО, нужно чтоб эфект .slideUp() исполнялся после двох подряд кликов по объекту, причем если кликнуть один раз по "Объекту №1", а потом по "Объекту №2", то щет кликов по "Объекту №1" обнулялся. |
ondblclick?
|
x-yuri, я сознательно добавил слово "почти", потому как в последнее время мне очень часто приходится с ней работать и натыкаться на баги. С ходу могу сказать, что новый метод fadeToggle() даже в IE8 работает с глюками (если используется PNG-24 в некоторых случаях заливает альфаканал черным цветом), toggleSlide() - работает рывками. Если интересно, то у них есть bugtracker http://bugs.jquery.com/report (можно в timeline заглянуть)
PS: разубедите меня, что это вижу только я один o_O Цитата:
timyrio, я же вам нагладно показал первом сообщении как действовать (что же, пример грубой силы): <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { var $i=$j=0; $('#object1, #object2').click(function() { if(this.id == 'object1') { $i++%2 ? $(this).slideUp("slow") : $j=0; } else { $j++%2 ? $(this).slideUp("slow") : $i=0; } return false; }); }); </script> <a href="#" id="object1">Объект №1</a><br /> <a href="#" id="object2">Объект №2</a> упрощенная запись ;) : this.id == 'object1' ? $i++%2 ? $(this).slideUp("slow") : $j=0 : $j++%2 ? $(this).slideUp("slow") : $i=0; |
Цитата:
monolithed, я видел баги прямо у них на сайте (в демках), так что не надо меня убеждать. Просто твоя фраза про кроссбраузерность была ни к чему а вообще про jQuery... они ж по сути поставили перед собой задачу создать свой язык, а не дополнить и улучшить. Ну вот и разгребают последствия :) |
PS: разубедите меня, что это вижу только я один :)
|
Цитата:
Цитата:
Цитата:
просто Safari 5.0 гадит (модольное окно, которое появляется для добавлении ссылки - не является модальным, и можно прям через него кликать мышью ;) ) |
Цитата:
и в дополнение некоторые задачи решаются лучше не на уровне библиотеки (по-крайней мере не так, как в jQuery), например, показ элементов. У них там есть кусок, решающий, какой бы display поставить элементу, методом вставки нового такого же элемента в страницу. К тому же оно все равно может неправильный результат выдать |
1. Как обратится ко всем переменным в скрипте + исключить одну из них?
2. Как обратится ко всем переменным в скрипте, например имя которых начинается с "counter"? Переменные к которым нужно обратится, без перечисления каждой: counter1 counter2 counter3 counter4 counter5 и т.д. |
шаровакуумные вопросы продолжаются...
2) использовать массивы |
Цитата:
По Квери вопрос - просьба Подскажите уважаемые гуру , как переделать этот скрипт чтоб при достижении опр. количества кликов ,заморозить счет кликов /типа анбинд/ , так как скрипт начинает считать сначала при достижении заданного числа в count ++ % 2 ? var count=1 $('img').live('click',function () { count ++ % 2 ? } $('.dv ').addClass ('dfg'): $('.dv ').addClass ('dfg2') )} |
Цитата:
if(i >= 3) { $(this).unbind(event); } |
Цитата:
|
Цитата:
var num=2 if(i >= num) { $(this).unbind(event); } |
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function(){ $('a').click(function(i, j) { return function(event) { $('input').val(++i); i >= j && $(this).unbind(event); event.preventDefault(); }; }(0, 3)); }); </script> <a href="#">click</a> <input type="text" value="0" /> |
Цитата:
Развитие темы :) ..Мне уже удалось модернизировать код подсчета Попова с его видеоучебника ,так как его можна повторить с моим уровнем изучения Квери Но здесь уже обратная проблема _ Не удаеться сбросить анбинд по окончания счета //....$("#apDiv3") по нем был бинд клик. if(i >= 6) { //взято из документации Квери $(this).unbind('click', aClick)} // штопор : не хочет связывать обратно.Но без ифа-работает как полагаеться $("#apDiv5").click(function () { $("#apDiv3").bind('click', aClick) наверно нужно сварить $(this).unbind('click', aClick)} , а что с ним делать потом этому $("#apDiv5") не знаю :-? |
Часовой пояс GMT +3, время: 02:31. |