1

我使用的手风琴盒来自 Jquery UI。它不起作用。

  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

这是我使用手风琴框的事件处理程序

$("#skillcat").click(function(e) {
                //var submit_val = new Array();
                //$('#accordion1').accordion('destroy');
                e.preventDefault();
                var ids = [];
                var el = $('[name*=check_subjects]:checked'); //Get all checked Checkboxes
                el.each(function () {
                    ids.push($(this).attr('id')); //get the Id from each checkbox
                });

                $.ajax( {
                type : "POST",

                dataType : "json",
                //
                url : "./wp-admin/admin-ajax.php",
                data : {
                    action : 'each_category',
                    check_subjects : ids
                },
                success : function(data) {
                            alert(data);

                    $('#accordion1').html(data);
                    $("#accordion1").accordion({ active: 0 });
                    $("#accordion1").css("font-family", "'Trebuchet MS', Arial, Helvetica, sans-serif");
                    $("#accordion1").css("font-size", "0.9em");



                    }
            });
        });

我想渲染手风琴的地方

   <div id="accordion1" >


    </div>

但是,当我第一次单击该按钮时,我将数据发送到警报框。它呈现内容,但不应用手风琴框。我在同一页上有另一个手风琴,但它可以工作。

如果我单击同一页面上的另一个按钮并尝试提交上面的按钮,我会收到数据以发出警报,但它不会将 html 呈现给浏览器。

我在哪里做错了?

阿贾克斯正在工作。

更新

当我添加此代码时

$('#accordion1').accordion('destroy');

$('#accordion1').html(data);

手风琴开始工作。但像往常一样,它第二次不起作用。

4

1 回答 1

0

所有 jQuery UI 插件都维护状态,例如当前选项值、插件是启用还是禁用、哪些插件已在元素上初始化等。此状态从插件在元素上实例化时一直持续到它被销毁,或者由用户显式调用 .pluginName('destroy') 或通过 .remove() 删除元素(或其祖先之一)。由于这种状态管理,你不能在一个元素上多次实例化同一个插件,除非你先销毁插件实例。

请查看以下链接以获取更多信息帮助链接

于 2013-07-28T11:58:35.707 回答