2011-02-24 39 views
0

比方說,我們有這樣3個功能:jQuery和的onclick HTML功能回調

// Notice there are no $(document).ready function 
function third(par) 
{ 
    // uses jQuery.fadeIn() and jQuery.fadeOut() 
} 

function second() 
{ 
    // do normal javascript 
    third('Something') 
} 

function main() 
{ 
    var response = $.ajax() // an ajax call with jQuery 
} 

現在讓我們來看看一個HTML頁面

<button onclick="main()">Click me, please</button> 

看來,職能界定內部$(document).ready不可用了所以main()將被定義如果內部$(document).ready 我已經檢查了與FireBug的每個功能的行動,我可以告訴你這個:

  • 調用main()函數,調用ajax調用返回正確的數據。
  • second()函數調用成功
  • third()函數被調用,但發生錯誤:fadeIn()沒有被定義爲任何其他的jQuery函數。

我的問題是:我應該怎麼做才能將一個jQuery函數附加到HTML onclick事件調用者?

+1

由於您使用jQuery無論如何,你應該使用事件處理程序附加到DOM元素的jQuery的方式,並停止使用「點擊」等 – Pointy 2011-02-24 16:27:02

+0

爲什麼不使用http://api.jquery.com/click/? – soju 2011-02-24 16:27:58

+0

哪些函數在$(document).ready'中定義?爲什麼要先在那裏定義它們? 「second」叫什麼名字? – RoToRa 2011-02-24 16:29:24

回答

2

$ ('button').click(main);裏面的文件準備

var main; 

$(document).ready(function(){ 
main = function(){...} 
... 
});