2009-08-10 93 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(); 
});