Как добавить события jquery в добавленные классы? - PullRequest
1 голос
/ 21 мая 2011

Я пытаюсь создать галерею изображений, я использую цифры вместо стрелок влево / вправо.На данный момент я пытаюсь заставить его работать только с 2 изображениями (ig 2 цифры)

это HTML.Идентификационная страница, это выделенный номер

 <div class="grid_1 pagelink" id="page"><p><a href="">1</a></p></div> 
<div class="grid_1 pagelink"><p><a href="">2</a></p></div> 

при первой загрузке страницы, код ниже работает.поэтому, когда я нажимаю на ссылку 2, код ниже работает нормально.Но затем я хочу, чтобы тот же код срабатывал при нажатии на первую ссылку;но когда я это делаю, страница обновляется, игнорируя код ниже:

 $('.pagelink').live('click', function(e){
    e.preventDefault();
        var frame = $(this).text() - 1;
        var frames =     240 * frame;
    //  $('#gal').animate({marginLeft:'500px'},'slow'); 
        $('#gal').animate({marginLeft:  "+="+frames+'px'},'slow');
    $(this).attr('id', 'page').removeClass('pagelink');
    $('#page').addClass('pagelink').removeAttr('id','page');
       // $('#book').animate({    left: '50'  });
    })

Я думал, что .live () сделает это для меня, но он не работает.

Iнадеюсь, вы могли бы помочь

спасибо

Ответы [ 2 ]

1 голос
/ 21 мая 2011

Предыдущее, это потому, что вы удаляете класс ссылки "pagelink", которая использовалась для сопоставления события, по которому щелкнули.

Кроме того, используйте другой класс вместо id (#page) для идентификации #pageссылка, идентификатор может быть проблемой, если он уже назначен другой ссылке.как

$(this).removeClass('pagelink').addClass('page');
$('.page').addClass('pagelink').removeClass('page');
1 голос
/ 21 мая 2011

жить должно работать нормально. Я думаю, у вас есть ошибка в вашем коде, и, вероятно, здесь:

$(this).attr('id', 'page').removeClass('pagelink');
$('#page').addClass('pagelink').removeAttr('id','page');

Что именно вы пытаетесь достичь с помощью этого кода?

когда вы нажимаете на страницу 2, вы устанавливаете идентификатор div на page, но теперь у вас есть 2 элемента с идентификатором страницы, и когда вы выбираете этот идентификатор, вы получаете первый (то есть page1), но вы все равно удаляете класс pagelink со страницы 2

другими словами, ошибка в том, что в какой-то момент у вас будет 2 элемента с одинаковым идентификатором (и идентификаторы должны быть уникальными, кстати), поэтому, когда вы выбираете этот идентификатор с помощью $('#page'), вы всегда получаете первый

...