单击jQuery调用自定义函数

Ben*_*awk 3 javascript jquery function

单击h1后,如何正确调用specialHouse函数,仍然允许$(this)表示div.content.目前以下不适用于错误"Uncaught TypeError:Object [object Object]没有方法'specialHouse'"

function specialHouse()
{
    $(this).slideDown(500, function(){
      $(this).delay(2000).slideUp();
    });
 };

$('div.content').hide();
$('h1').on('click', function(){
    $(this).next('div.content').specialHouse();
})
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 :)

jan*_*mon 6

你必须告诉jQuery你的新功能:

jQuery.fn.specialHouse = function() {
   return this.slideDown(500, function(){
     $(this).delay(2000).slideUp();
   }
}
Run Code Online (Sandbox Code Playgroud)

当我们返回时,this我们的功能是链式:

$("a").specialHouse().text("Hello World");
Run Code Online (Sandbox Code Playgroud)


Nik*_*iko 5

你尝试过的方式只适用于jQuery插件.但是,您可以像这样调用函数(上下文this将按预期设置):

$('h1').on('click', function() {
    $(this).next('div.content').each(specialHouse);
});
Run Code Online (Sandbox Code Playgroud)