Javascript 如何禁用JqueryUI手风琴部分
嗨,伙计们,我正试图禁用queryUI部分,我只有两个部分,到目前为止,我已经尝试了一些我的黑客,但似乎没有一个有效 这是我迄今为止所尝试的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
//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>