Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在函数-2中调用函数-1_Javascript_Jquery - Fatal编程技术网

Javascript 如何在函数-2中调用函数-1

Javascript 如何在函数-2中调用函数-1,javascript,jquery,Javascript,Jquery,我有功能-1 $('.make_favorite').live('click', function() { //some code here }); 我还有一个功能-2 function selectContactTab() { //some code here //call function-1 here } 由于某种原因,我无法控制功能-1, 我的问题是如何在函数-2中调用函数-1?您的函数-1实际上是函数调用,并传入回调。您需要将其封装在它自己的函数中,类似这样: func

我有功能-1

$('.make_favorite').live('click', function() {
  //some code here
});
我还有一个功能-2

function selectContactTab() {
  //some code here
  //call function-1 here
}
由于某种原因,我无法控制功能-1,
我的问题是如何在函数-2中调用函数-1?

您的
函数-1
实际上是函数调用,并传入回调。您需要将其封装在它自己的函数中,类似这样:

function functionOne() {
  //some code here
}

function selectContactTab() {
  //some code here
  functionOne();
}

$('.make_favorite').live('click', functionOne);

在本例中,
functionOne
是作用域上的一个函数,也作为
.live
调用的回调传入。它以前不起作用的原因是因为
函数-1
中的回调超出了
函数-2
的范围,简单地说,它不存在。在我的示例中这样的函数中初始化它可以调用。

您的
function-1
实际上是函数调用,传入了回调。您需要将其封装在它自己的函数中,类似这样:

function functionOne() {
  //some code here
}

function selectContactTab() {
  //some code here
  functionOne();
}

$('.make_favorite').live('click', functionOne);

在本例中,
functionOne
是作用域上的一个函数,也作为
.live
调用的回调传入。它以前不起作用的原因是因为
函数-1
中的回调超出了
函数-2
的范围,简单地说,它不存在。在我的示例中这样的函数中初始化它将使它可以调用。

您可以手动触发click事件,这将导致匿名函数运行,您称之为
function-1

function selectContactTab() {
  //some code here
  //call function-1 here
  $('.make_favorite').click();
}

您可以手动触发click事件,这将导致匿名函数运行,您称之为
function-1

function selectContactTab() {
  //some code here
  //call function-1 here
  $('.make_favorite').click();
}


您是否检查了trigger click event(触发点击事件)?您使用的jQuery的哪个旧版本支持
live
?您是否检查了trigger click event(触发点击事件)?您使用的jQuery的哪个旧版本支持
live
?在第一个示例中,调用
selectContactTab()
只会定义一个新的回调,不会运行任何东西……啊,我不熟悉
.live()
方法-我将删除第一个示例My function-1是某个插件中的某个函数,因此我无法对其进行任何控制,也无法将其传递给.live调用。My function-1是某个插件中的某个函数,因此我无法对其进行任何控制,也无法将任何函数传递给其.live调用。
.live
正如现在所写的,这个调用只有在发出该调用时才存在。如果您不/不能更改它,则无法从其他任何位置调用它在第一个示例中,对
selectContactTab()
的调用将只定义一个新的回调,不会运行任何操作…啊,我不熟悉
.live()
方法-我将删除第一个示例My function-1是某个插件中的某个函数,因此我无法对其进行任何控制,也无法将其传递给.live调用。My function-1是某个插件中的某个函数,因此我无法对其进行任何控制,也无法将任何函数传递给其.live调用。
.live
正如现在所写的,这个调用只有在发出该调用时才存在。如果您没有/无法更改它,则无法从其他任何地方调用它。它会生成“Uncaught RangeError:超出最大调用堆栈大小”此错误
Uncaught RangeError:超出最大调用堆栈大小
表示您触发了无限循环,从而导致堆栈溢出。单击事件可能会无限次地自我触发。我需要查看更多代码才能帮助解决此错误。谢谢@bastos.sergio我的代码有问题,现在工作正常。它产生了“未捕获的RangeError:超过最大调用堆栈大小”此错误
uncaughtrangeError:超过最大调用堆栈大小
意味着您触发了一个无限循环,从而导致堆栈溢出。单击事件可能会无限次地自我触发。我需要查看更多代码才能帮助解决此错误。谢谢@bastos.sergio我的代码有问题,现在它工作正常。