这是我的相关代码:
var dropdown = {
init: function() {
$(".dropdown").click(".dropdown", dropdown.openDropdown, dropdown.secondFunction);
},
openDropdown: function() {
...
}
}
如何在click
事件中调用多个函数?我添加了我上面尝试做的事情。
修改:
所以这是我的新代码与你们的帮助,我可以确认这两个函数都被调用,因为当我把警报放入它们都触发时,但由于某种原因,openDropdown
内的代码现在不是工作。是因为我的$(this)
引用是关闭还是什么?
var dropdown = {
init: function() {
$(".dropdown").click(".dropdown", function() { dropdown.openDropdown(); dropdown.closeDropdowns(); });
},
openDropdown: function() {
$(this).children(".dropdown-menu").show();
$(this).addClass("open");
},
closeDropdowns: function() {
//$(".open").removeClass(".open");
//$(".open").children(".dropdown-menu").hide();
}
}
答案 0 :(得分:2)
var dropdown = {
init: function() {
$(".dropdown").click(".dropdown", function(){ this.openDropdown(); this.secondFunction()});
},
openDropdown: function() {
...
}
}
答案 1 :(得分:1)
你可以这样做:
$('.dropdown').on('click', function () {
dropdown.openDropdown();
dropdown.secondFunction();
});
如果您希望this
和openDropdown
内的secondFunction
成为您需要使用.call
的元素。
var dropdown = {
init: function() {
$(".dropdown").on("click", function () {
// The call makes `this` the element in the functions...
dropdown.openDropdown.call(this);
dropdown.secondFunction.call(this);
});
},
openDropdown: function() {
console.log('openDropdown', this);
},
secondFunction: function() {
console.log('secondFunction', this);
}
};
dropdown.init();
答案 2 :(得分:1)
var dropdown = {
init: function() {
$(".dropdown").click(".dropdown", function() {dropdown.openDropdown(); dropdown.secondFunction();
});
},
openDropdown: function() {
// first function callback
},
secondFunction: function() {
// second call back
}
};
dropdown.init();
<强> DEMO 强>