- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想知道是否有办法排除函数中的某些元素。例如:
window.onclick = doThis() except if the element clicked is a 'ul' element.
类似的东西。我知道它可能必须这样写:
function doThis() {
if (this item clicked is NOT 'ul') {
function xyz();
}}
window.onclick = doThis();
我只是不确定 javascript 中是否存在“异常”。有人可以帮忙吗?谢谢。
好的,这是我的完整代码,因为它仍然无法正常工作:
<script type="text/javascript">
function ddMenu() {
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
function ddMenu_open(e)
{
//ddMenu_canceltimer();
ddMenu_close();
var submenu = $(this).find('ul');
if(submenu){
ddmenuitem = submenu.css('visibility', 'visible');
//return false;
//preventDefault();
}
//return true;
}
function ddMenu_close()
{ if(ddmenuitem) ddmenuitem.css('visibility', 'hidden'); }
function ddMenu_timer()
{ closetimer = window.setTimeout(ddMenu_close, timeout); }
function ddMenu_canceltimer()
{ if(closetimer)
{ window.clearTimeout(closetimer);
closetimer = null;}}
$(document).ready(function()
{ $('#ddMenu > li').bind('click', ddMenu_open);
$('#ddMenu li ul').bind('click', ddMenu_timer);
//$('#ddMenu > li').bind('mouseout', ddMenu_timer);
//$('#ddMenu > li').bind('mouseover', ddMenu_canceltimer);
});
document.onclick = function(ev){
if(ev.target.nodeName !== 'ul') {
ddMenu_close();
}
};
}
</script>
我添加了下面建议的 target.nodeName !== 代码,但它仍然无法正常工作。当我单击 ul 时,它仍会关闭我的菜单。谢谢。
最佳答案
window.onclick = function(ev){
if( ev.target.nodeName !== 'UL' ){
xyz();
}
};
我们在这里所做的是使事件对象成为一个参数。这样我们就可以得到点击事件的目标。我们在这里正是这样做的——我们检查目标是否是一个 ul
元素。如果没有,运行函数。
此外,为了将来引用,您必须将函数分配给 onclick。所以先把函数赋给一个变量,然后把变量赋给onclick(不带括号)。我在某个地方读到过这个……我会试着把它拉起来。
关于javascript - window.onclick 除非元素是 'someElement',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662147/
我有以下几行代码 $("*[class]").each(function (index, elem) { console.log("Element: " + elem.tagName + "
如何将参数“someDiv”传递给 imageLoaded? 我的困惑是由于 imageLoaded 被事件调用并且已经传递了它自己的参数(由参数“someImg”捕获) window.onload
我有一个程序 jQuery(function($){ function makeParentHeightOfSmallestChild (parentSelector) {
我想知道是否有办法排除函数中的某些元素。例如: window.onclick = doThis() except if the element clicked is a 'ul' element. 类
假设我有这个。 hello, my friend's & dog are good friends! 我认为 $(somediv).text().length 计算的是编码,而不是
以下代码适用于 Chrome,但不适用于 IE 或 FireFox。有人知道合适的跨浏览器代码吗? http://tempuri.org/SubscriptionService/Updat
我是一名优秀的程序员,十分优秀!