gpt4 book ai didi

javascript - knockout : click other place of the page and hide the element

转载 作者:行者123 更新时间:2023-11-28 02:24:35 25 4
gpt4 key购买 nike

我正在创建一个2级菜单,因此单击顶部菜单项,子菜单会显示,如果单击页面的其他位置而不是子菜单本身,子菜单应该隐藏。我不倾向于向 body 标签添加点击绑定(bind),无论如何它都不会起作用,但是我能做些什么来实现这一点呢?这是到目前为止我的代码。

<div id="menuholder">
<ul id="topmenu">
<li data-bind="click: showMenu.bind($data, 1)">top menu item</li>
<ul class="submenu" data-bind="visible: selected() == '1'">
<li><a href="#">submenu item</a></li>
</ul>
</ul>
</div>
<script type="text/javascript">
var menuModel = function () {
var self = this;
self.selected = ko.observable(0);
self.showMenu = function (data) {
var s = self.selected();
if (s > 0 && data == s)
self.selected(0);
else
self.selected(data);
};
self.hideMenu = function () {
self.selected(0);
}
}
ko.applyBindings(new menuModel(), document.getElementById("menuHolder"));

最佳答案

如果您查看如何Twitter Bootstrap执行下拉菜单时,它会向 html 元素添加一个事件:

内部 Dropdown 类定义:

...
$('html').on('click.dropdown.data-api', function () {
$el.parent().removeClass('open')
})

你可以尝试类似的东西。

关于javascript - knockout : click other place of the page and hide the element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15147106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com