Событие 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, время: 14:16. |