2011-02-24 62 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(){...} 
... 
});