2010-08-31 175 views
2

我正在使用Jquery UI选项卡,并且想要更改mouseover上元素的属性。使用JQuery更改CSS属性

我的HTML是这样的:

<ul id="sub-tabs"> <li><a href="#000"><span>000<br /><p id="ct1">General</p></span></a></li> </ul>...

和jQuery是:

$('#guide-nav ul#sub-tabs span').mouseover(function() { 
    $("#guide-nav ul#sub-tabs li p").css("display", "none"); 
}); 

但是,这是行不通的。

回答

1
<ul id="sub-tabs"> 
    <li><a href="#000"><span>000<br /><p id="ct1">General</p></span></a></li> 
</ul> 

jQuery是:

$('#guide-nav ul#sub-tabs span').mouseover(function() { 
    $("#guide-nav ul#sub-tabs li a span p").css("display", "none"); 
}); 

或者试试这个:

$('#guide-nav ul#sub-tabs span').mouseover(function() { 
    $("p#ct1").css("display", "none"); 
}); 

或者这样:

$('#guide-nav ul#sub-tabs span').mouseover(function() { 
    $(this).find('p').css("display", "none"); 
}); 
+0

这似乎并没有擦出火花。我在想,也许Jquery UI Tabs可能会重写元素的样式和/或名称,所以我删除了这个调用,但仍然没有去。 – 2010-08-31 12:42:05

0

使用此

$('#guide-nav ul#sub-tabs span').mouseover(function() { 
    $("#guide-nav ul#sub-tabs li p").css({display:"none"}); 
}); 
+1

这只是编写.css(“display”,“none”)的另一种方式,并不会改变任何有关他的代码如何反应的内容。 – bradenkeith 2010-08-31 12:31:07

+0

还是不行。我可以尝试在一个独立的环境中,看看页面上的其他代码是否在搞乱它... – 2010-08-31 12:47:10

0

好吧,我在一个函数包装这个和它的作品...

$(function() {            
    $('#guide-nav ul#sub-tabs li a span').mouseover(function() { 
     $(this).find('p').css("display", "none"); 
    }); 
}); 

我决定使用上面的语句,只隐藏选定的选项卡中的元素,因为会有倍数

0

当我尝试你的代码时,它确实有效。当你执行javascript时,你确定DOM已经完成加载吗?

$(document).ready(function() { 
    $('#guide-nav ul#sub-tabs span').mouseover(function() { 
    ("#guide-nav ul#sub-tabs li p").css("display", "none"); 
    }); 
}); 

而不是.css("display", "none");你也可以使用.hide()