2013-02-01 30 views
-3


也许你可以帮助我。 我想自动创建jquerymobile崩溃http://jquerymobile.com/test/docs/content/content-collapsible.html)使用JavaScript的内容,就像这样:自动折合html内容

<h3>title 1</h3> 
some text 

<h3>title 2</h3> 
some text 

<h3>title 3</h3> 
some text 

此内容来自JSON,我不能前操纵。
我必须包装每个:

<h3>title</h3> 
some text 

与此:

<div data-role="collapsible" data-collapsed="true"></div> 

但它不工作...帮助!

+1

你说你不能这样做,你试过了吗?听起来像你一样。要么粘贴一些代码,要么共享一个jsfiddle! – sircapsalot

+0

“也许你不能帮助我”:'( – Toping

+0

纠正“can”;) – MatthieuH

回答

1

看看这个页面的源代码,我可以注意到,jQuery是基于点击事件dinamically添加和删除类。将你的内容包装成div和jQuery,然后添加和删除类。像

<h3 id="collpase-bar" class="collapsed">Collapse Title</h3> 
<div class="collapsible-content hidden">Content</div> 

使用jQuery功能的东西来处理崩溃标题单击事件,并切换到这个

<h3 id="collapse-bar" class="not-collapsed">Collapse Title</h3> 
<div class="collapsible-content shown">Content</div> 

这是一个简单的解释,我要做一个小提琴举例说;)

+0

真正的问题是用jquery将这些内容包装在不同的部分。 – MatthieuH

+0

完成! http://jsfiddle.net/DDxZ6/ 你可以添加一些很酷的jQuery的东西,如fadeIn/fadeOut,slideIn/slideOut ...要使用它的内容很多,你实际上可以使用类来改变按钮的风格和识别通过id或值显示的内容 –

1

的Html

<h3 class="collapse" data-target="content1">Head 1</h3> 
<div class="hidden" id="content1"></div> 

<h3 class="collapse">Head 2</h3> 
<div class="hidden" id="content2"></div> 

<h3 class="collapse">Head 3</h3> 
<div class="hidden" id="content3"></div> 

的JavaScript

$(".collapse").each(function(){ 
    var el = $(this); 
    el.click(function(){ 
     var id = el.attr("data-target"); 
     // files same names with id's 
     $("#"+ id).load("ajax/"+ id +".html"); 
     // or 
     $("#"+ id).load("ajax.php", function(responseText){ 
      $("#"+ id).html(responseText); 
     }); 
    }); 
}); 
+0

谢谢,但就像我说我不能直接修改HTML它是一个外部JSON源!我必须改变它与JavaScript不可能有任何其他类或分区。 – MatthieuH

+0

为什么要使用ajax?为什么不根据需要将属性设置为隐藏或不隐藏? –