jquery函数中的回调

时间:2011-06-20 13:35:47

标签: jquery

我们可以用另一个jquery函数中的选择器回调jquery函数吗? 就像我有两个jquery函数

// Function 1: 
   $("#slideUp").click(function(){
      $("#testDiv").slideUp("slow",CALLBACK);
   });

// Function 2: 
   $("#slideDown").click(function(){
      // Do some stuff
   });  

如何在函数1的回调中调用函数2?

*编辑:添加正确的术语 *

我们可以在另一个jquery监听器中使用选择器回调一个jquery监听器吗? 就像我有两个jquery监听器

// Listener 1: 
   $("#slideUp").click(function(){
      $("#testDiv").slideUp("slow",CALLBACK);
   });

// Listener 2: 
   $("#slideDown").click(function(){
      // Do some stuff
   });  

如何将Listener 2称为Listener 1回调?

我想在slideDown填充后执行testDiv的点击监听器 谢谢Spycho。

〜Ajinkya。

5 个答案:

答案 0 :(得分:3)

如果您的意思是要触发ID为slideDown的元素的点击,请在回调函数中使用$("#slideDown").click()。这将触发该元素的事件处理程序。

答案 1 :(得分:1)

有点不清楚你想要什么,因为“功能2:”不是一个功能,它是一个声明。

你要么:

$("#testDiv").slideUp("slow",function() {
    $("#slideDown").click();
});

触发click事件。

$("#testDiv").slideUp("slow",function() {
   $("#slideDown").click(function(){
      // Do some stuff
   });  
});

分配click处理程序。

答案 2 :(得分:1)

函数2不是回调,它是jQuery的调用,注册回调。您需要为f2的回调函数创建一个可访问的引用

假设您的意图是在f2动画完成后调用slideUp,请尝试:

function f1() {
    $("#testDiv").slideUp("slow", f2);
}

function f2() {
    // do some stuff
}

$('#slideUp').click(f1);
$('#slideDown').click(f2);

编辑这在技术上比触发新事件更干净,因为它只是使用.slideUp's内置的“完成回调”功能传递直接函数引用,而不是futz around将东西注入事件队列。

答案 3 :(得分:1)

尝试.trigger() http://api.jquery.com/trigger/

在你的情况下,

// Function 1:
$("#slideUp").click(function(){
  $("#testDiv").slideUp("slow", function() { $("#slideDown").trigger('click') } );
});

答案 4 :(得分:1)

this你的目标是什么?

它定义了一个回调函数,在单击#slideDown和#testDiv完成向上滑动时都会调用它。


更新

要在不在别处定义函数的情况下调用处理程序,您可以“触发”hanlder正在侦听的事件,例如: $("#slideDown").click();