JCarousel клонировал элементы, неспособные вызвать функцию javascript - PullRequest
1 голос
/ 18 марта 2012

Я использую JCarousel для отображения круглой карусели из 5 делений.Все элементы 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 будет принята с благодарностью.Приношу свои извинения, если это повторяющийся пост, но после двух с лишним часов поиска я решил, что пришло время спросить.спасибо!

1 Ответ

2 голосов
/ 02 апреля 2012

У меня была такая же проблема, похоже, это ошибка в 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");
}
...