2011-09-24 34 views
4

基于在我的xhtml中记录为OPML节点的流程图,我想动态地(使用jquery,不刷新页面)逐个获取问题,具体取决于直到OPML中的最终消息达到前一个的是/否回答。例如;点击是否OPML一次一个的问题

问:你有宠物吗?
答:是的

问:它大吗?
答:是

问:是狗吗?
- 答:是的

最后:请注意,狗是不允许在这个事件!

该机制与提议的in this SO question类似。但是需要为每个问题和答复编码。我正在寻找一种方法来编写一些你可以在任何OPML上进行编码的东西,并且它会自动创建这种行为。

作为javascript关闭时的可读回退,并且为了避免解析外部OPML,最好使用XOXO an outline microformat而不是OPML。

+0

你能提供一些样品的标记? – thirtydot

+0

http://jsfiddle.net/gY3Yy/4/很高兴找到一种不必一遍又一遍地重复相同的答案的方法,例如,参见步骤N.就像一个大纲可以指向一个气球多个倍。 – newnomad

回答

0

你可以做这样的事情:http://jsfiddle.net/kayen/fGrT2/

HTML:

<div id="petTest"> 
    <fieldset> 
     <legend>Do you have a pet?</legend> 
     <ul> 
      <li><label for=""><input type="radio" name="petstatus" value="Yes" /> Yes</label></li> 
      <li><label for=""><input type="radio" name="petstatus" value="No" /> No</label></li> 
     </ul> 
    </fieldset> 

    <fieldset> 
     <legend>Is it big?</legend> 
     <ul> 
      <li><label for=""><input type="radio" name="petsize" value="Yes" /> Yes</label></li> 
      <li><label for=""><input type="radio" name="petsize" value="No" /> No</label></li> 
     </ul> 
    </fieldset> 

    <fieldset> 
     <legend>Is it a dog?</legend> 
     <ul> 
      <li><label for=""><input type="radio" name="pettype" value="Yes" /> Yes</label></li> 
      <li><label for=""><input type="radio" name="pettype" value="No" /> No</label></li> 
     </ul> 
    </fieldset> 
    <fieldset> 
     <legend>Please note that dogs are not allowed at this event!</legend> 
    </fieldset> 
</div> 

JQuery的:

$("#petTest fieldset") 
    .hide() 
    .eq(0).show() 
    .end() 
    .find("input[value='Yes']") 
    .click(function() { 
     $(this).parents("fieldset").next().show(300); 
    }) 
    .end() 
    .find("input[value='No']") 
    .click(function() { 
     $(this).parents("fieldset").nextAll().hide(300, function(){ 
      $(this).find("input").attr("checked", false);     
     }); 
    });