2011-05-17 88 views
0

我有以下情況:jQuery的綁定點擊

在HTML頁面中我有一個動態生成的按鈕,類似於:

<div id='myButton'></div> 

此html頁面包含一個腳本(例如,A.js) ,它處理網站的大部分功能,並且在該腳本中按鈕被綁定到處理程序:

$("#myButton").bind("click", function(){ 
foo(); 
}); 

到目前爲止它的簡單。現在,只有在特定情況下,我需要使用相同的按鈕來執行第二個功能。這必須通過另一個腳本完成,動態生成並注入html網站。因此,HTML將類似於此:

<script type=text/javascript src=A.js></script> 
<script type=text/javascript> 
//Dynamically generated script 
</script> 

我不想覆蓋以前的功能,我仍然需要執行,而且我需要這個功能的第一個前執行。而且腳本包含在網站上的方式不能改變。

所以,我寫了下面的(內部的第二個腳本標籤):

$("#myButton").bind("click", 
    function(){ 
      bar(); // I still want foo() to be executed but after this is executed first. 
}); 

是否有可能做這樣的事情?請注意,我無法控制腳本如何包含在我的網站上。改變順序是不可能的。

回答

2

你仍然可以有更多的綁定同一事件

http://jsbin.com/iyewu5/edit

,他們將被解僱由什麼是代碼

第一排序,所以你可以有:

$("#myButton").bind("click", function() { foo(); }); 

和其他腳本

$("#myButton").bind("click", function() { bar(); }); 

這將作爲你只要把他們下$(document).ready(function() {});

+0

不幸的是,我無法控制A.js中事件的約束方式。這由CMS完成。我可以添加新的點擊綁定,並且需要找到一種方法在cms添加之前先執行此點擊。 – user496607 2011-05-17 09:45:29

+0

這是一個什麼是第一個問題,只是交換位置......告訴我們你正在嘗試用實時代碼完成什麼,以獲得更好的幫助。 – balexandre 2011-05-17 11:08:59

0

爲什麼不直接結合螺栓富,扎入該函數作爲

$("#myButton").bind("click", function() { foo(); bar(); }); 

..

$("#myButton").bind("click", function(){ 
bar(); 
foo(); 
}); 

或者你可以實現foo()作爲回調函數。

+0

是的,但我沒有添加foo(),它已被系統添加(本例中爲CMS),我無法改變這種行爲! – user496607 2011-05-17 09:43:55