2011-01-11 72 views
0

我动态创建下拉工作下拉菜单,如:使用JavaScript代码jQuery的UL李菜单问题

<dl id="sample-1" class="dropdown"> 
    <dt id="1"><a href="#" id="1"><span>Please select the country</span></a></dt> 
    <dd> 
     <ul> 
      <li><anchortag>Brazil fdsf sdf kjdsh hkjh jkh hdf sdh kjh sdfh kjh k hkjh 2121 fgfd21g 21 21g dfg1 f21gfd2<span class="value">BR</span></ahchor></li> 
      <li><anchortag>France<span class="value">FR</span></ahchor></li> 
      <li><anchortag>Germany<span class="value">DE</span></ahchor></li> 
      <li><anchortag>India<span class="value">IN</span></ahchor></li> 
      <li><anchortag>Japan<span class="value">JP</span></ahchor></li> 
      <li><anchortag>Serbia<span class="value">CS</span></ahchor></li> 
      <li><anchortag>United Kingdom<span class="value">UK</span></ahchor></li> 
      <li><anchortag>United States<span class="value">US</span></ahchor></li> 
     </ul> 
    </dd> 
</dl> 
<span id="result-1"></span> 

<script> $('dl[id^="sample-"] dt a').click(function(e) { 
    e.preventDefault(); 
    //$('dl[id^="sample-"] dd ul').toggle();      $(this).closest('dt').siblings('dd').find('ul').toggle(); 
}); 

$('dl[id^="sample-"]').each(function() { 
    var mainOjbect = this; 
    //$(this.closest('dt').find('a')).live('click', function(e) {           
    $("dl[id^='sample-'] dd ul li a").live('click', function(e) { 
     var text = $(this).html(); 
     alert(text); 
     alert(mainOjbect.id + "id is...."); 
     $('#' + mainOjbect.id + " dt a span").html(text); 
     //$(this).closest('dt').find('a').find('span').html(text); 
     //$("dl[id^='sample-'] dd ul").hide();    
     $('#' + mainObject + "ul").hide(); 
     $(this).find('dl[id^="result-"]').html("Selected value is: " + getSelectedValue(this)); 
    }); 
}); 

function getSelectedValue(id) { 
    alert(id); 
    return $("#" + id).find("dt a span.value").html(); 
} 

$(document).bind('click', function(e) { 
    alert('hello3'); 
    var $clicked = $(e.target); 
    if (!$clicked.parents().hasClass("dropdown")) 
    //$("dl[id^='sample-'] dd ul").hide(); 
    $(this).closest('dt').siblings('dd').find('ul').hide(); 
}); < /script> 

这些所有的菜单都被动态地创建使用JavaScript克隆功能和接下来将是

<dl id="sample-2" class="dropdown"> 
... 
... 
... 
<dl id="sample-n" class="dropdown"> 

但我不明白当我点击一个菜单sele ction正在另一个菜单上完成,我想在他们的位置运行所有这些菜单。我花了足够的时间,但没有弄清楚我的代码有误。 需要帮助如何遍历所有这些。

感谢

+1

请你重新格式化您的代码? – roman 2011-01-11 16:21:40

回答

1

正如我已经interpretted乌尔问题遍历用户点击后的所有菜单项u能这样做下面...

$('.dropdown').live('click',function(){ 


    $('li').each(function(){ 

    var $idOfli=$(this).attr('id'); 
    . 
    . 
    . 
    } 

    });