Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.06.2011, 21:49
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

UI Accodion блокировка всех вкладок кроме текущей
Как сделать так, что б при нажатии на кнопки редактировать пользователь не мог открыть другую закладку, допустим Area 1.
А после нажатия кнопки сохранить снова мог переходить на любую созданную закладку.
Метод accordion("disable") не предлагать так как он блокирует весь
аккардион и пользователь уже не может нажать ни кнопку сохранить ни другую вкладку.

<div id="accordion">
    <h3><a href="#">Area 0</a></h3>
    <div><input type="button" value="Редактировать" id="edit"><input type="button" value="Сохранить" id="save"></div>
    <h3><a href="#">Area 1</a></h3>
    <div><input type="button" value="Редактировать" id="edit"><input type="button" value="Сохранить" id="save"></div>
</div>

Пробывал так не работает

editFlagAccord=true;//флаг включения редактирования
	$( "#accordion" ).accordion({
			changestart:function(e,ui){
				active = $("#accordion").accordion( "option", "active" );
				if(editFlagAccord){
				}else{
				$(this).accordion( "option", "active", active ).accordion("activate" ,active );
				
				}
			}	
		})
$("#edit").live("click", function(){
	editFlagAccord=false;
	//$("#accordion").accordion("disable");

});
$("#save").live("click", function(){
	editFlagAccord=true;
	//$( "#accordion" ).accordion("enable");
});
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2011, 16:19
Профессор
Отправить личное сообщение для Telnet Посмотреть профиль Найти все сообщения от Telnet
 
Регистрация: 21.02.2011
Сообщений: 160

Пока что написал так, блокировка работает, но из-за закливания события changestart, даже мой 4 ядерный комп подгючивает, нужно как то избавить от него.
editFlagAccord=true;//флаг включения редактирования
  $( "#accordion" ).accordion({
     changestart:function(e,ui){
        newHeaderArea=parseInt(ui.newHeader.find("a").prop("id"));
        oldHeaderArea=parseInt(ui.oldHeader.find("a").prop("id"));
        active = $("#accordion").accordion( "option", "active" );
        if(editFlagAccord){
           }else{
             alert('active='+active+' oldHeaderArea='+oldHeaderArea+' newHeaderArea='+newHeaderArea);//выводим специально что бы показать что происходит зацикливание, но так блокировка происходит, но событие изменения закладки продолжает происходить постянно
                $(this).accordion( "activate" ,oldHeaderArea);
                               
             }
         }      
})
$("#edit").live("click", function(){
        editFlagAccord=false;
});
$("#save").live("click", function(){
        editFlagAccord=true;
});

Последний раз редактировалось Telnet, 20.06.2011 в 16:30.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
alert для всех браузеров кроме IE mousesport Javascript под браузер 6 06.04.2011 16:45
Скрипт работает во всех браузерах кроме IE (getElementById) cmd Internet Explorer 9 19.03.2011 16:06
Код работает корректно во всех браузерах кроме IE8 Yamasa Events/DOM/Window 6 18.01.2011 07:40
Скрипт не работает во всех браузерах, кроме Оперы Yadooumne! Элементы интерфейса 6 27.10.2008 17:08