Клонированные элементы JCarousel не могут вызвать функцию javascript

Я использую JCarousel для отображения круговой карусели из 5 элементов div. Все элементы div LI имеют кнопки, которые вызывают функцию Javascript с помощью события onClick. Все кнопки работают по назначению, пока вы не дойдете до последнего (пятого) изображения, и карусель снова продолжится с первого элемента. Новые клонированные элементы li теперь не могут вызывать функцию javascript.

//SAMPLE LIST ITEM 
<li>
    <div class="carousel-item">
       <div id="item01">
           <a href="javascript:void(0)" id="btn-01" onClick="itemsData('http://google.com')">Click Me</a>
         </div>
       </div>
  </li>
 //SAMPLE CALLED FUNCTION
var itemsData = function (uri) 
{
    console.log("LINK CLICKED");
}

Мы будем очень признательны за любую помощь в получении клонированных элементов для вызова функции js. Приношу свои извинения, если это дубликат сообщения, но после более чем 2 часов поиска я решил, что пришло время спросить. Благодарность!


person Russdogg    schedule 18.03.2012    source источник


Ответы (1)


У меня была такая же проблема, похоже, это ошибка в jcarousel. Чтобы обойти это, мне пришлось переместить событие click в функцию initCallback. Например:

        jQuery('#teaserHomePageItems').jcarousel({
            initCallback: teaserHomePageItems_initCallback
        });


    function teaserHomePageItems_initCallback(carousel) {
        jQuery('.jcarousel-control a').bind('click', function () {
            //alert(jQuery(this).attr('id'));
carousel.scroll(jQuery.jcarousel.intval(jQuery(this).attr('id')));
        DoWork(jQuery(this).attr('id'));//passing the id of the element to DoWork allows me to do anything with it.
            return false;
        });


function DoWork(idName)
{
        jQuery('#' + idName).attr("src", "someimage.png");
}
person Anthony    schedule 02.04.2012
comment
Очень интересно, спасибо за ответ. Я попробую. - person Russdogg; 05.06.2012