在jquery中调用用户定义的函数

我想在jQuery中调用用户定义的函数。

$(document).ready(function() { $('#btnSun').click(function() { myFunction(); }); $.fn.myFunction = function() { alert('hi'); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="btnSun">Say hello!</button> 

我也尝试了以下

 $(document).ready(function() { $('#btnSun').click(function() { myFunction(); }); }); function myFunction() { alert('hi'); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="btnSun">Say hello!</button> 

它似乎没有工作! 任何想法,我错了吗?

如果你想通过一个jQuery事件调用一个普通的函数,你可以这样做:

 $(document).ready(function() { $('#btnSun').click(myFunction); }); function myFunction() { alert('hi'); } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="btnSun">Say hello!</button> 

试试这个 它总是工作。

 $(document).ready(function() { $('#btnSun').click(function() { $.fn.myFunction(); }); $.fn.myFunction = function() { alert('hi'); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <button id="btnSun">Say hello!</button> 

正如Jaboc评论的那样,他们被称为插件 。 有意义的是,插件函数应该对被调用的元素做些什么。 考虑以下:

 jQuery.fn.make_me_red = function() { return this.each(function() { this.style.color = 'red'; }); }; $('a').make_me_red(); 

以下是正确的方法

 $(document).ready(function() { $('#btnSun').click(function(){ $(this).myFunction(); }); $.fn.myFunction = function() { alert('hi'); } }); 

试试这个$('div').myFunction();

这应该工作

 $(document).ready(function() { $('#btnSun').click(function(){ myFunction(); }); function myFunction() { alert('hi'); } 
 jQuery.fn.make_me_red = function() { return this.each(function() { this.style.color = 'red'; }); }; $('a').make_me_red() // - instead of this you can use $(this).make_me_red() instead for better readability. 
 jQuery.fn.make_me_red = function() { alert($(this).attr('id')); $(this).siblings("#hello").toggle(); } $("#user_button").click(function(){ //$(this).siblings(".hello").make_me_red(); $(this).make_me_red(); $(this).addClass("active"); });​ 

在jQuery中的函数声明和callback。

 $(document).ready(function() { $('#btnSun').click(function(){ myFunction(); }); $.fn.myFunction = function() { alert('hi'); }; }); 

放'; '函数定义后…