Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблемы с css('display') == 'block' (https://javascript.ru/forum/dom-window/63535-problemy-s-css-%27display%27-%3D%3D-%27block%27.html)

Рагер 13.06.2016 20:03

Проблемы с css('display') == 'block'
 
Вот код
$('body').on('click', function() {		   		 	
		    	if ($('.dropdown-menu').css('display') == 'block') {
		    	 	$('#pr4').css('z-index', '1');
		    	}
		    	else {
		    		 $('#pr4').css('z-index', '-1');
		    		}
		    	});


По чему то срабатывает $('#pr4').css('z-index', '-1'); всегда когда кликаешь по окну. Нужно, что бы срабатывало когда css('display') == 'block'), все остальное время $('#pr4').css('z-index', '1');

Заранее спасибо.

рони 13.06.2016 20:12

Рагер,
маловато будет, в предоставленном коде ошибок нет и Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Рагер 13.06.2016 20:28

Причина использования такого кода в конфликте bootstpapa с анимацией, при использовании opacity, плывет контекст наложения и вплывающее меню оказывает под слоем <div> который ниже находится, помогает только z-index -1, но там свои проблемы. Вот и нужно что бы при включении всплывающего окна z-index становился -1, а при следующем клике по окну выключался. А код представленный сверху, срабатывает каждый раз когда кликаешь по окну и автоматом дает z-index -1, не пойму в чем причина.

Рагер 14.06.2016 10:40

Причину понял, вначале выполняется скрипт, а потом бутсртап, а нужно наоборот, как сделать ума не приложу.

Dilettante_Pro 14.06.2016 11:59

Цитата:

Сообщение от Рагер (Сообщение 419309)
Вот код
$('body').on('click', function() {		   		 	
		    	if ($('.dropdown-menu').css('display') == 'block') {
		    	 	$('#pr4').css('z-index', '1');
		    	}
		    	else {
		    		 $('#pr4').css('z-index', '-1');
		    		}
		    	});


По чему то срабатывает $('#pr4').css('z-index', '-1'); всегда когда кликаешь по окну. Нужно, что бы срабатывало когда css('display') == 'block'), все остальное время $('#pr4').css('z-index', '1');

Заранее спасибо.

Вообще-то в коде у вас все с точностью до наоборот...Если block то 1 иначе -1

hfts_rider 15.06.2016 10:56

У ".dropdown-menu" точно display: block?

Рагер 16.06.2016 09:46

Цитата:

Сообщение от hfts_rider (Сообщение 419465)
У ".dropdown-menu" точно display: block?

Там добавляется класс open>dropdown-menu, у которого display: block. Там проблема не в функции, а в порядке выполнения и я никак не могу построить свой порядок, вот придумал немного по другому, но все равно не пашет:

var C = $.Callbacks();
		   	
		 var foc1 = $('#pr7').on('click', function(){
     		$('#pr4').css('z-index', '1');
     		return;
      	});

		var foc2 = $('#dr3').on('click', function(){
     		alert('click');
     		$('#pr4').css('z-index', '-1');
     		return;
     	});
		   
		
		var foc3 = $('#pr2').on('click', function(){
     		$('#pr4').css('z-index', '-1');
     		return;
     	
     	});
		C.add(foc1);
		C.add(foc2);
		C.add(foc3);
		C.fire(foc1);
		C.fire(foc2);
		C.fire(foc3);


Вроде и калбеки подключил и все равно не пашет не пойму почему, может кто подскажет.

рони 16.06.2016 11:21

Цитата:

Сообщение от Рагер
вначале выполняется скрипт, а потом бутсртап, а нужно наоборот, как сделать ума не приложу.

вариант: заменить все $ в этом коде на jQuery

Рагер 16.06.2016 13:47

В принципе решил вопрос, может кому пригодится:
window.onload = function() {
    document.body.onclick = function(event) {
        var t=event.target||event.srcElement; 
         
                if (t.id=='dr3'||t.id=='pr2') {
                	
                    jQuery('#pr4').css('z-index', '-1');

                }
                 
                else {
                	
                     jQuery('#pr4').css('z-index', '1');

                    }

                }
	  }

Рагер 16.06.2016 13:51

В принципе решил вопрос, может кому пригодится:
window.onload = function() {
    document.body.onclick = function(event) {
        var t=event.target||event.srcElement; 
         
                if (t.id=='dr3'||t.id=='pr2') {
                	
                    jQuery('#pr4').css('z-index', '-1');

                }
                 
                else {
                	
                     jQuery('#pr4').css('z-index', '1');

                    }

                }
	  }


Часовой пояс GMT +3, время: 12:52.