ByPass jQuery Плагин Функция OnClick - PullRequest
0 голосов
/ 10 августа 2009

Я использую следующий плагин jQuery, т. Е.

http://flowplayer.org/tools/scrollable.html

Проблема, с которой я сталкиваюсь, заключается в том, что, как часть вызова API, она делает нас функцией onClick() в js-файле плагина.

Я на самом деле хочу использовать функцию onClick в качестве обычной функции javascript onClick(), но я не могу, так как кажется, что она переопределена следующим кодом:

                // assign onClick events to existing entries
            } else {

                // find a entries first -> syntaxically correct
                var els = nav.children(); 

                els.each(function(i)  {
                    var item = $(this);
                    item.attr("href", i);
                    if (i === 0) { item.addClass(conf.activeClass); }

                    item.click(function() {
                        nav.find("." + conf.activeClass).removeClass(conf.activeClass);
                        item.addClass(conf.activeClass);
                        self.setPage(item.attr("href"));
                    });

                });
            }

        });


        // item.click()
        if (conf.clickable) {
            self.getItems().each(function(index, arg) {
                var el = $(this);
                if (!el.data("set")) {
                    el.bind("click.scrollable", function() {
                        self.click(index);      
                    });
                    el.data("set", true);
                }
            });             
        }

Есть ли способ обойти это, чтобы я мог использовать автономную функцию onClick()?

Ответы [ 2 ]

1 голос
/ 10 августа 2009

Кажется, что они не дали функцию callback для обратного вызова. Вы можете изменить их код JS, чтобы сделать это -

item.click(function() {
    nav.find("." + conf.activeClass).removeClass(conf.activeClass);
    item.addClass(conf.activeClass);
    self.setPage(item.attr("href"));
    if(typeof(clickCallback) != "undefined") clickCallback();
});

Итак, если на вашей странице определена функция с именем clickCallback, теперь вы сможете обрабатывать событие click после выполнения кода события click -

function clickCallback() {
    //This is the function on your page. This will be called when you click the item.
}

Вам не нужно вызывать функцию clickCallback, библиотека сама вызовет эту функцию, если она была определена.

1 голос
/ 10 августа 2009

Вы можете определить свой собственный обработчик события щелчка и остановить там распространение события.

$('your selector').click(function (e) {
    e.stopPropagation();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...