Jquery 如何将同一按钮分配给不同的div,并在点击typescript时独立管理它们
我想制作一个展开/折叠按钮,并将其分配给不同的div。这是我的密码:Jquery 如何将同一按钮分配给不同的div,并在点击typescript时独立管理它们,jquery,html,typescript,Jquery,Html,Typescript,我想制作一个展开/折叠按钮,并将其分配给不同的div。这是我的密码: let expandButtonHTML = require("!text-loader!./button.html"); ... let expandButton = frame.contents().find(".expandMenuArrow"); let topMenu = frame.contents().find(".efdRLHover"); let bottomMenu = frame.contents().f
let expandButtonHTML = require("!text-loader!./button.html");
...
let expandButton = frame.contents().find(".expandMenuArrow");
let topMenu = frame.contents().find(".efdRLHover");
let bottomMenu = frame.contents().find(".pbHeader");
topMenu.prepend(expandButtonHTML);
bottomMenu.prepend(expandButtonHTML);
let div = [topMenu, bottomMenu];
div.forEach(element => {
expandButton.click(function () {
element.slideToggle("fast");
if (expandButton.hasClass('fa fa-caret-down')) {
expandButton.removeClass('fa fa-caret-down');
expandButton.toggleClass('fa fa-caret-right');
}
else {
expandButton.removeClass('fa fa-caret-right');
expandButton.toggleClass('fa fa-caret-down');
}
});
});
我知道forEach循环正在遍历数组中的所有元素,并在它们上执行expandButton函数,但是我如何构造它,以便单击特定的div在其上执行特定的函数呢
单击topMenu展开topMenu,依此类推 我认为您可能需要在循环内部分别查找topMenu和bottomMenu的expandButton,而不是在循环外部查找它。也许这会有帮助
div.forEach(element => {
let expandButton = $(".expandMenuArrow", element);
expandButton.click(function () {
element.slideToggle("fast");
if (expandButton.hasClass('fa fa-caret-down')) {
expandButton.removeClass('fa fa-caret-down');
expandButton.toggleClass('fa fa-caret-right');
}
else {
expandButton.removeClass('fa fa-caret-right');
expandButton.toggleClass('fa fa-caret-down');
}
});
});
谢谢!以上解决了我的问题——正如你所说,我必须在循环中定义expandButton,而不是在循环外部。