1

我也想为每个州和每个城市设置一个链接。当状态 li 悬停在我只希望这个状态城市显示....但我只知道一点 jquery 代码并且我对选择器的理解并不完美,我不确定如何使用 .each jquery 函数.... 请帮忙!!!!php代码:

<?
$everything = array(
        'states'=>array(
            'Alabama'=>array('Birmingham,Montgomery,Mobile,Huntsville,Tuscaloosa'),
            'Alaska'=>array('Anchorage,Juneau,Fairbanks,Sitka,Ketchikan'),
            'Arizona'=>array('Phoenix,Tuscon,Mesa,Glendale,Scottsdale'),
            'Arkansas'=>array('Little Rock,Fort Smith,North Little Rock,Fayetteville,Jonesboro'),

        )
);
$id = md5(0);
$controll = 0;
$here = md5('states');
echo "<div id=\"9090\"><ol id=\"selectable\">";
    foreach($everything['states'] as $state=>$city){
    $citys = explode(',',$city[0]);
    echo    "<li class=\"ui-state-default\"><a class=\"contr\" href=\"#\">$state</a> <div class=\"citys\">";
        foreach($citys as $key=>$x){
            echo "<a href=\"#\">$x</a><br>";    
        }
    "</div></li>";
    }

echo "</ol></div>";
?>

jQuery:

    <script>

        $(function() {
            $( "#selectable" ).selectable();
        });
        $('.ui-state-default').mouseenter(function(e) {
// here when i hover over this state all citys show i just want the cities for this sate
            $('.citys').toggle();
        }).mouseleave(function(e) {
// here when i leave  this state li all theese citites should leave
            $('.citys').toggle();
        });;

    </script>
4

2 回答 2

1

您需要在查找城市时添加上下文,像这样$('.citys', this).toggle();
这将搜索.citys位于this其中的元素,在这种情况下是悬停的.ui-state-default元素。

        $('.ui-state-default').mouseenter(function(e) {
            $('.citys', this).toggle(); // added this 
        }).mouseleave(function(e) {
            $('.citys', this).toggle(); // added this 
        });

在http://api.jquery.com/jquery/#jQuery1查看如何使用上下文参数


或者,您可以使用.find()

$(this).find('.citys').toggle();
于 2011-12-21T22:48:17.180 回答
0

你不需要javascript。查找“css:hover”......这都可以由样式表处理。

于 2011-12-21T22:47:57.793 回答