关于jQuery'的一般问题;s.click()
我目前正在学习Jquery的api。我知道Jquery有一个悬停函数,如下所示:关于jQuery'的一般问题;s.click(),jquery,Jquery,我目前正在学习Jquery的api。我知道Jquery有一个悬停函数,如下所示: hover( handlerIn(eventObject) , handlerOut(eventObject)) .click( [eventData], handler(eventObject) ) 使用第二个handlerOut(eventObject),我可以处理一些事件,比如在菜单树未悬停时将其折叠 然后,我查看了click函数的api,如下所示: hover( handlerIn(eventObjec
hover( handlerIn(eventObject) , handlerOut(eventObject))
.click( [eventData], handler(eventObject) )
使用第二个handlerOut(eventObject)
,我可以处理一些事件,比如在菜单树未悬停时将其折叠
然后,我查看了click函数的api,如下所示:
hover( handlerIn(eventObject) , handlerOut(eventObject))
.click( [eventData], handler(eventObject) )
与我在前面的描述中想要实现的类似,我有一个菜单树。单击列表项时,它将下拉到子菜单。我的问题是,当我从菜单中单击或单击其他项目时,如何折叠此子菜单树
最后,我使用jquery-1.2.6.min.js来实现这一点
我的jQuery:
$("li.p1:has(ul)").click(function(event){
if (this == event.target) {
var current = this;
$("#nav li:has(ul)").each(function() {
if (this != current) $(this).children().slideUp(400);
});
$("ul:first", $(this)).slideToggle(400);
}
},function(){$(this).children().slideUp(400);});
我的HTML:
<div id="wrap">
<ul id="nav">
<li class="p1 down">Manage Subject
<ul>
<li><a href="#url">Add Subject</a></li>
<li><a href="#url">Edit Subject</a></li>
<li><a href="#url">Delete Subject</a></li>
<li><a href="#url">Export Subject</a></li>
</ul>
</li>
<li><a href="#url">Manual Crawling</a></li>
<li><a href="#url">Crawl Interval</a></li>
<li><a href="#url">Search Parameter</a></li>
</ul>
</div>
我可以想到的一种方法是为“body”元素创建一个事件处理程序
$('body').click(function(event){
//Needs validation.
if ($('li.p1:has(ul)') != event.target) {
$("#nav li:has(ul)").each(function() {
if (this != current) $(this).children().slideUp(400);
});
}
});
目的是向“body”元素添加事件处理程序,并探测是否单击了预期的元素。如果没有,则将其向上滑动。我认为同样的方法可以做得更好。以下代码将在单击div时将
“target”
div的颜色设置为红色。单击其他任何位置将再次将
目标“
div的颜色变回黑色
如果在div处于黑色状态(未打开)时单击“目标”
div外部,则不会发生任何事情。因此,我们不会在菜单已关闭时关闭它
var counter = 0;
$( "html" ).live('click', function(event){
var myID = event.target.id;
if (myID && myID == "target") {
$('#'+myID).css('color', 'red');
counter++;
}
else {
if(counter > 0){
$("#target").css('color', 'black');
}
counter = 0;
}
});
编辑:添加以玩…“最后,我使用jquery-1.2.6.min.js来实现此目的。”…呃…更新!!