Событие live
Добрый день, вопрос может и странный, но все же.
Вешается у меня событие live на элемент (всего таких на странице несколько) скажем с class=foo $('.foo').live('click', function() { //blabla }); Но дальше мне нужно удалить live у одного элемента, примерно так: $('#sel1').parent().find('.foo').die(); Но т.к. таким образом задавать событие нельзя, вопрос: Как это обойти? Заранее спасибо. PS: Вешал таким образом событие click(); с пустой функцией внутри - не помогает. |
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $('#sel1').parent().find('.foo').addClass('insertClick').attr('id','insert_сlck'); $(".foo:not('.insertClick')").live('click', function() { alert($(this).html()) //$('.insertClick').removeAttr('id'); //Если нужно удалять клик и в этом случае строку - раскоментируем }); $('#insert_сlck').live('click', function() { alert($(this).html()) $(this).removeAttr('id'); }); }); </script> <div class="foo">А тут - не удаляем</div> <div> <div id="sel1"></div> <div class="foo" style=color:red>Тут удаляем клик</div> </div> |
Deff, плоховато трогать ID - вдруг он нужен.
я бы сделал так, через data : $('.foo').live('click', function() { *!* if ($.data(this, "Live убран с этого элемента") === "да, убран") { return; } */!* //blabla }); // убираем live с нужного элемента : $element.data("Live убран с этого элемента", "да, убран"); // возвращаем на место live : $element.data("Live убран с этого элемента", null); |
melky,
Мон и третий класс навесить - как легло -так и сделал |
Цитата:
|
Спасибо большое за отклики, вечером опробую варианты - отпишусь
|
melky,
Спасибо большое, Ваш вариант помог :) |
Часовой пояс GMT +3, время: 05:00. |