我遇到了jquery的问题:点击“li”函数,各种版本的行为都不同......这里是html代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<style>
html,body{
font: 90% arial, tahoma, verdana #333 normal;
margin:0;
padding:0;
}
#treeDiv
{
width:250px;
background-color:#C4E4EE;
border:#6BB8DC solid 1px;
margin:10px;
}
ul#jQtree{
list-style-type:none;
margin:10px;
padding:0;
background-color:#fff;
}
ul#jQtree li
{
padding:5px 10px 5px;
border:#CCC solid 1px;
}
ul#jQtree li label
{
background-color:#666;
color:#fff;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
//on mouseover of li, change cursor to hand
$('#jQtree li').hover(function(){ $(this).css({'cursor':'hand'})});
//on click of li, if there are subnodes for it, hide it.
$('#jQtree li').click(function(event){
if(event.target.nodeName == "LI" && $(event.target).children('ul').length > 0){
$(this).children('ul').slideToggle("200");
}
});
});
</script>
</head>
<body>
<div id="treeDiv">
<ul id="jQtree">
<li>
<label>Main Node</label>
<ul>
<li><label>Sub Node 1</label></li>
<li><label>Sub Node 2</label></li>
<li><label>Sub Node 3</label></li>
<li><label>Sub Node 4</label></li>
</ul>
</li>
</ul>
</div>
</body>
</html>
我只为具有“UL”子项的“LI”编写了jquery onclick函数。 它在ie8中工作,即使在ie7中也是如此,但不同之处在于内部“LI”的onclick仅在ie8中工作,而在ie7中,外部“LI”边缘的onclick也可以工作。最后在ie6中,光标闪烁,有时它变成手,然后你必须点击否则它将无法工作。任何人都可以帮我在所有版本中修复此问题。任何黑客???任何人都会指导我让它发挥作用..
答案 0 :(得分:0)
你可以使点击方法更具可读性:
$('#jQtree li').click(function(ev) {
if (this.children('ul').length > 0) {
this.children('ul').slideToggle(200); // note that I changed the type
}
}
此外,.hover()
将两个函数作为参数 - 一个用于鼠标悬停,一个用于mouseout。如果您不想在mouseout上发生任何事情,您应该添加一个空函数,但很可能您想要做的是:
$('#jQtree li').hover(
function() { this.css('cursor':'pointer'); },
function() { this.css('cursor':'default'); }
);
作为旁注,您提供的悬停处理程序将在上执行进入和退出,这将始终将光标保持为指针。