[英]Jquery execute two functions on click
我试图在单击时执行功能,下面是HTML上的单击按钮,
Insights.init()
将在页面加载时执行,这将为我提供服务器上的一些数据,现在单击按钮,我需要将变量传递给month
函数以过滤数据,单击以执行Insights()
内部的所有函数
var Insights = function() { var initCheckColor = function(vari) { console.log(vari); } var testFunction = function(vari) { console.log('test'); } return { init: function() { initCheckColor(); testFunction(); } }; }(); jQuery(document).ready(function() { Insights.init(); }); function month(vari) { console.log("hoo"); return { init: function() { initCheckColor(vari); testFunction(); } }; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="#" onClick="month('test')"> Month </a>
现在的问题是,当我单击链接时,我可以在控制台上看到“ hoo”字样,但是我也想通过执行initCheckColor(vari)函数来打印它,这意味着我想输出两次,但是我无法输出它,
如何获得两次输出?
问题:带有此代码
function month(vari) {
console.log("hoo");
//this block of code
return {
init: function() {
initCheckColor(vari);
testFunction();
}
};
// upto here
}
调用month
函数时,您将返回带有名为init
的属性的对象。 注意:您只是返回一个对象,而不在该属性内执行函数。 另外一个问题是此属性是一个函数,它执行另外两个函数,但是这些函数在当前范围中不可用。 因为它们等于Insights
对象的Private方法。
解决方案:就像用页面加载一样,用数据重新初始化对象。
我已经修复了您的代码,并在进行更改的代码中添加了注释。
var Insights = function() { var initCheckColor = function(vari) { console.log(vari); } var testFunction = function(vari) { console.log('test'); } return { init: function(vari) { // have a input parameter during initialization. initCheckColor(vari); testFunction(); } }; }(); jQuery(document).ready(function() { Insights.init('something'); // I pass in the string "something" now this will be printed by the initCheckColor function. }); function month(vari) { console.log("hoo"); Insights.init(vari); // initialize the Insights object by passing in some value. }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <a href="#" onClick="month('test')"> Month </a>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.