2009-08-10 91 views
0

我使用下面的jQuery插件,即:绕过jQuery插件的OnClick功能

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

我有但问题是,当调用API的一部分,它似乎让我们在插件js文件中的onClick()函数。

其实我是想用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 2009-08-10 14:02:07

+0

是的。它的'removeitem'功能。 – Kirtan 2009-08-11 04:23:08

回答

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在页面上定义的函数,你现在就可以自己点击事件代码执行后处理click事件 -

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

您不必调用clickCallback功能,图书馆将自身调用该函数如果它的定义。

+0

感谢那Kirtan,但我仍然不确定如何实际使用/调用clickCallback函数?目前,我正在使用onClick函数onClick =“removeitem();”但上面的代码正在接管。我如何处理clickCallback? – tonyf 2009-08-10 13:15:57

+0

感谢您的回复 - 所以基于您的函数clickCallback,这实际上是我的removeitem()函数,而不是clickCallBack函数 - 是的? – tonyf 2009-08-10 14:22:25

1

您可以定义自己的点击事件处理程序并停止在那里传播事件。

$('your selector').click(function (e) { 
    e.stopPropagation(); 
});