2014-05-22 18 views
-1

请看看JS小提琴如何显示复选框代替手风琴?

http://jsfiddle.net/d7a89/

如果导航为COOLDrinks --->百事--->锡

如果选择了天,那我是不是可以显示100ml和200ml作为复选框而不是Accordians?

硬编码也很好,只是我需要在代替手风琴的地方显示复选框。

<?xml version="1.0" encoding="UTF-8"?> 
<categories> 
    <CoolDrinks name="Pepsi" /> 
    <CoolDrinks name="Thumsup" /> 
    <Pepsi name="Tin" /> 
    <Tin name="100ml" /> 
    <Tin name="200ml" /> 
    <Pepsi name="Bottle" /> 
    <Bottle name="1Litre" /> 
    <Bottle name="40Litres" /> 
    <Thumsup name="Pet" /> 
    <Pet name="25ml" /> 
    <Pet name="50ml" /> 
    <can name="70mlml" /> 
    <can name="00ml" /> 
    <Thumsup name="can" /> 
</categories> 

回答

2

尝试一段代码在你findInXML()一样,

var flag=true; // flag=true for accordians only 
for (var i = 0; i < names.length; i++) {  
    // check the last child element having no tag   
    if($(xmldocu).find(names[i]).length){ 
     activateUiHTML.append("<h3><a href='#'>"+names[i]+"</a></h3><div></div>"); 
    } else { // if not found then make a checkbox for it 
     flag=false;// no accordian 
     activateUiHTML.append('<input type="checkbox"/>'+names[i]) ; 
    } 

} 
// append the new html; 
var acc=activateUi.newPanel.html(activateUiHTML); 
if(flag){ // if it is not last element then only create accordian for it 
     acc.find('.inner-accordion').accordion({ 
      heightStyle: "content", 
      autoHeight: false, 
      collapsible: true, 
      active: false, 
      activate: function (event, ui) { 
       setStuff(event, ui); 
      } 
     }); 
} 

Working Demo

+0

是一个更好的解决方案。荣誉。 – Runcorn

+0

非常感谢,它的工作很棒。 – Kiran

+0

@Kiran欢迎.... –

1

确定的,如果硬编码是好的,那么你可以检查名称[]包含ml/l/mlml它:

if(!names[0].contains("ml")){ 
    var activateUiHTML = $("<div class='inner-accordion'></div>"); 
    for (var i = 0; i < names.length; i++) { 
     activateUiHTML.append("<h3><a href='#'>" + names[i] + "</a></h3><div></div>"); 
    } 
    activateUi.newPanel.html(activateUiHTML).find('.inner-accordion') 
          .accordion({ 
          heightStyle: "content", 
          autoHeight: false, 
          collapsible: true, 
          active: false, 
          activate: function (event, ui) { 
           setStuff(event, ui); 
          } 
         }); 
    } 
    else{ 
     var activateUiHTML = $("<div class='inner'></div>"); 
     for (var i = 0; i < names.length; i++) { 
       activateUiHTML.append("<h3><input type='checkbox' value='"+i+"'>" + names[i] + "</input></h3><div></div>"); 
      } 
      activateUi.newPanel.html(activateUiHTML); 
      } 
    } 

这里是Demo