我想单击页面中的其他位置时隐藏div。对于这一点,我有:子元素的Prototype.js event.target.id
$(document.body).observe('click', function(e){
if(e.target.id != 'myDiv') {
$('myDiv').hide();
}
});
工作得很好,唯一的问题是,这个div里面我还有其他的元素,并单击它们也关闭#myDiv。我想要它,所以点击这个div内的任何内容都不会触发隐藏。在四处搜索后,我在这里找到了关于如何使用jQuery执行此操作的答案:https://stackoverflow.com/a/12222263/548524。然而,我似乎无法在Prototype中得到这个工作,并且显然()在这里是无效的。
任何帮助,非常感谢!
感谢的方法,我明白它应该如何工作,但上面的代码会抛出一个错误:无法调用null的方法'up'。还尝试使用$(e.target.id).up()!='myDiv',但我得到相同的错误,所以不确定是否缺少语法中的某些内容或为什么它不起作用。 – loreley
@loreley,我想我犯了一个错误,更新了答案 –
为了获得$(event.target).up()的id,我必须使用$(event.target).up()。readAttribute 'id')现在它可以工作,但.up()只选择第一个祖先。 – loreley