2009-08-10 2 views
0

Я использую следующий JQuery плагин, то есть:ByPass JQuery плагин OnClick функции

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

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

Я действительно хочу, чтобы использовать функцию 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()?

+0

Я обновил свой ответ с кодом. Вы можете проверить это. – Kirtan

+0

Да. Его функция 'removeitem'. – Kirtan

ответ

1

Кажется, что они не дали 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, определенную на вашей странице, вы теперь будете в состоянии обрабатывать событие щелчка после того, как их код события нажатия был выполнен -

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

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

+0

Спасибо за это Киртан, но я до сих пор не знаю, как на самом деле использовать/вызывать функцию clickCallback? В данный момент я использую функцию onClick как onClick = "removeitem();" но вышеупомянутый код захватывает. Что мне делать с clickCallback? – tonyf

+0

Спасибо за ваш ответ - так на основе функции clickCallback, это на самом деле моя функция removeitem() вместо функции clickCallBack - да? – tonyf

1

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

$('your selector').click(function (e) { 
    e.stopPropagation(); 
}); 
Смежные вопросы