Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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
Jquery 如何将同一按钮分配给不同的div,并在点击typescript时独立管理它们_Jquery_Html_Typescript - Fatal编程技术网

Jquery 如何将同一按钮分配给不同的div,并在点击typescript时独立管理它们

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

我想制作一个展开/折叠按钮,并将其分配给不同的div。这是我的密码:

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,而不是在循环外部。