Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 动态创建的手风琴不工作。为什么?_Jquery_Jquery Ui - Fatal编程技术网

Jquery 动态创建的手风琴不工作。为什么?

Jquery 动态创建的手风琴不工作。为什么?,jquery,jquery-ui,Jquery,Jquery Ui,有人能告诉我为什么手风琴坏了吗 ajax调用工作正常,accordion div使用与accordion2div相同的结构创建(用于检查accordios是否工作!) div将使用适当的类进行修饰: <div id=​"accordion" class=​"ui-accordion ui-widget ui-helper-reset ui-accordion-icons" role=​"tablist">​ ​ 但这就是它能做到的。所有动态创建的内容都不会被触及。而div只是像普

有人能告诉我为什么手风琴坏了吗

ajax调用工作正常,accordion div使用与accordion2div相同的结构创建(用于检查accordios是否工作!)

div将使用适当的类进行修饰:

<div id=​"accordion" class=​"ui-accordion ui-widget ui-helper-reset ui-accordion-icons" role=​"tablist">​
但这就是它能做到的。所有动态创建的内容都不会被触及。而div只是像普通一样渲染(即没有格式,只是链接和文本交替,而不是手风琴!)

正如你所看到的,我试着把对accordion()的调用分散到所有地方,但没有效果

这显然与动态创建条目的事实有关。但谷歌似乎发现其他人在类似的设置上进展良好

PS我累了,不知所措,所以这可能是愚蠢的事情

    <script>
        $(document).ready(function() {

            $("#accordion").accordion({
                header: "h3"
            });

            $.ajax({
                type: "GET",
                url: "/api/blog",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(blogs) {
                    for (var i in blogs) {
                        $('#accordion').append(
                            $('<div/>').append(
                                $('<h3></h3>').append(
                                    $('<a href="#"/>').append(
                                        blogs[i].Title
                                    )
                                )
                            ).append(
                                $("<div/>").append(
                                    blogs[i].Body
                                )
                            )
                        );
                    }
                    $("#accordion").accordion({
                        header: "h3"
                    });
                }
            });
            $("#accordion").accordion({
                header: "h3"
            });
            $("#accordion2").accordion({
                header: "h3"
            });
        });
    </script>
</head>
    <body>
    <div id="accordion"></div>
    <div id="accordion2">
            <div>
                <h3><a href="#">First</a></h3>
                <div>Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.</div>
            </div>
            <div>
                <h3><a href="#">Second</a></h3>
                <div>Phasellus mattis tincidunt nibh.</div>
            </div>
            <div>
                <h3><a href="#">Third</a></h3>
                <div>Nam dui erat, auctor a, dignissim quis.</div>
            </div>
        </div>
    </body>
</html>

$(文档).ready(函数(){
$(“手风琴”)。手风琴({
标题:“h3”
});
$.ajax({
键入:“获取”,
url:“/api/blog”,
数据:“{}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(博客){
for(博客中的var i){
$(“#手风琴”)。追加(
$('')。追加(
$('')。追加(
$('
“我爱我,我爱我,我爱我,我爱我。”。
菲塞勒斯·马蒂斯·丁西登·尼布。
南对岸,拍卖人a,贵人奎斯。

对于其中一个,您初始化手风琴的次数太多了两次 请尝试删除其中两个:

$("#accordion").accordion({
                header: "h3"
            });

但是保留ajax函数中的初始化功能,以便在初始化手风琴之前填充内容。

我只是开始分散这些内容,因为它不起作用。我从来没有想到多次调用会把事情搞砸。你的建议一定是我唯一没有尝试过的配置!天哪,真尴尬。我当时很害怕eluctant想问因为我知道这会是一个DOH!lol.它起作用了。干杯!