Javascript 如何禁用JqueryUI手风琴部分

Javascript 如何禁用JqueryUI手风琴部分,javascript,jquery,html,jquery-ui,Javascript,Jquery,Html,Jquery Ui,嗨,伙计们,我正试图禁用queryUI部分,我只有两个部分,到目前为止,我已经尝试了一些我的黑客,但似乎没有一个有效 这是我迄今为止所尝试的 //Enable section1 by remove attributes $('#subfacEdit').removeAttr("disabled");//div $('#subfacEdit').removeAttr("display");//div $('#HeadersubfacE

嗨,伙计们,我正试图禁用queryUI部分,我只有两个部分,到目前为止,我已经尝试了一些我的黑客,但似乎没有一个有效

这是我迄今为止所尝试的

        //Enable section1 by remove attributes
        $('#subfacEdit').removeAttr("disabled");//div
        $('#subfacEdit').removeAttr("display");//div
        $('#HeadersubfacEdit').removeAttr("disabled");//H3
        $('#HeadersubfacEdit').removeAttr("display");//H3

        //Disable section2
        $('#facEdit').attr("disabled", "disabled");//div
        $('#facEdit').attr("display", "none");//div
        $('#HeaderfacEdit').attr("disabled", "disabled");//H3
        $('#HeaderfacEdit').attr("display", "none");//H3

        $('#editAccdordian').accordion("activate", 1);//activate section2
分析: Div确实被禁用了,但我想显示属性并没有被应用,我只想通过任何方式使部分不可读

我尝试过智囊团解决方案,但变化不大?

您可以为要禁用的属性添加一个特殊的
数据-
属性,例如
data enabled=“false”
。然后,使用
beforeActivate
事件防止切换。类似于

$( "#EditAccdordian" ).on( "accordionbeforeactivate", function( event, ui ) {
  if( ui.newHeader && ui.newHeader.attr('data-enabled') == 'false') {
    event.preventDefault();
  }
} );
您还可以在手风琴创建中绑定事件

$( "#EditAccdordian" ).accordion({
  beforeActivate: function( event, ui ) {
    if( ui.newHeader && ui.newHeader.attr('data-enabled') == 'false') {
      event.preventDefault();
    }
  }
});
您禁用的标题现在应该如下所示:

<h3 id="HeaderfacEdit" data-enabled="false">Header content</h3>
标题内容
编辑:
我删除了ui.newHeader的jquery选择,因为它是一个jquery对象。对象的验证应该完成,因为它在折叠时是空的(请参阅)。

试试看,这将对您有用

$(".DISABLE").click(function(){
      $(this).next().hide();
      $("#accordion").accordion({active:current});
  });

。。。
//JAVASCRIPT
$(文档).ready(函数(){
var$accordion=$(“#accordion”).accordion({可折叠:true});
$(“#手风琴”)。手风琴(“选项”,“清除样式”,真);
无功电流=零;
$(“#手风琴h3:非(.DISABLE)”。单击(函数(){
当前=$accordion.accordion(“选项”,“活动”);
});
$(“.DISABLE”)。单击(函数(){
$(this.next().hide();
$(“#手风琴”)。手风琴({active:current});
});
});
...  
//HTML
MUK-1
MUK-2
MUK-3
MUK-4

hmm,beforeActivate事件将检查属性值,并根据该属性值继续激活或将离开accordian?的激活状态,因此我只需通过。js rest将完全由beforeActivate事件处理?@dotnetSolder。
事件.preventDefault()
阻止手风琴更改。然后,您可以使用
$('#HeaderfacEdit').attr('data-enabled','true')
设置/更改该值。如果你用一个类来替换启用的数据,你甚至可以改变禁用的手风琴的样式。这对我不起作用,我使用了我相同的技术进行了一些修改。单击“禁用”部分,上次打开的部分就打开了。单击“禁用”部分,应该没有任何操作,或者换句话说,点击应该被浪费掉。
...
//JAVASCRIPT
$(document).ready(function() {
  var $accordion = $("#accordion").accordion({ collapsible: true });
  $( "#accordion" ).accordion( "option", "clearStyle", true );

  var current=null;

  $("#accordion h3:not(.DISABLE)").click(function(){
    current = $accordion.accordion("option","active");       
  });

  $(".DISABLE").click(function(){
      $(this).next().hide();
      $("#accordion").accordion({active:current});
  });
});
...  
  //HTML
  <div id="accordion">
    <h3><a href="#">Section 1</a></h3>
    <div>
        MUK - 1
    </div>
    <h3 **class="DISABLE"**><a href="#">Section 2 (Disabled)</a></h3>
    <div>
        MUK - 2
    </div>
    <h3><a href="#">Section 3</a></h3>
    <div>
        MUK - 3
    </div>
    <h3><a href="#">Section 4</a></h3>
    <div>
        MUK - 4
    </div>
</div>