Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2015, 15:41
Новичок на форуме
Отправить личное сообщение для regnised Посмотреть профиль Найти все сообщения от regnised
 
Регистрация: 02.09.2015
Сообщений: 7

Не работает скрипт перемещения элементов
Вот сам скрипт:
$('body').click(function (event) {
        console.log($('[visibility]'));
        if ($('[visibility]').length == 0){
            $(event.target).css({"visibility": "hidden"});

        } else {
            $('[visibility]').insertAfter($(event.target)).css({"visibility": "visible"});}
    });


тут я кликаю по элементу, если нет никаких скрытых элем. - делаю этот скрытым, если есть скрытый - ставлю его после того куда кликнул.
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2015, 16:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от regnised
если нет никаких скрытых элем

if (!$(':hidden').length){
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2015, 16:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

regnised,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  div  {
      width: 100px;
      height: 100px;
      float: left;
      border: #000000 2px solid;
  }
  .first {
    background: #FF0000;
  }
  .last{
    background: #008000;
  }


  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       $('body').on('click', 'div', function (event) {
        event.preventDefault();
        if (!$('div:hidden').length){
            $(this).hide();

        } else {
            $('div:hidden').insertAfter(this).show()}
    });

});


  </script>
</head>

<body>
<div class='first'>1</div>
<div class='first'>2</div>
<div class='first'>3</div>
<div class='last'>4</div>

</body>

</html>
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2015, 17:00
Новичок на форуме
Отправить личное сообщение для regnised Посмотреть профиль Найти все сообщения от regnised
 
Регистрация: 02.09.2015
Сообщений: 7

Спасибо, немного позже проверю
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2015, 22:38
Новичок на форуме
Отправить личное сообщение для regnised Посмотреть профиль Найти все сообщения от regnised
 
Регистрация: 02.09.2015
Сообщений: 7

Переделал свое вот так:
$('body').click(function (event) {
    event.preventDefault();
    if (!$('div:hidden').length){
        $(this).hide();
    } else {
        $('div:hidden').insertAfter(this).show();}
});
- не работает

Может Ваше решение работает потому что есть $(function(){

$(function(){ //тут анонимная функция вызывается
$('body').on('click', 'div', function (event) { // тут при событии онклик с боди берем дивы
event.preventDefault(); // перехватываем дефаултное событие миши
if (!$('div:hidden').length){// если не нашли скрытых дивов - скрываем тот на который кликнули
$(this).hide();

} else {
$('div:hidden').insertAfter(this).show()} // если есть скрытый див - показываем
});
});

вопрос, почему у меня не работает?
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2015, 23:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от regnised
скрываем тот на который кликнули
$(this).hide();
ой
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2015, 23:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

regnised,
$('body').click(function (event) {  //есть ли body? к этому моменту или ещё нет
    event.preventDefault();
    if (!$('div:hidden').length){
        $(this).hide();  // скрыли  body
    } else {
        $('div:hidden').insertAfter(this).show();} // если вдруг был скрытый div, попытаемся всунуть его мимо  body
});
Ответить с цитированием
  #8 (permalink)  
Старый 03.09.2015, 14:08
Новичок на форуме
Отправить личное сообщение для regnised Посмотреть профиль Найти все сообщения от regnised
 
Регистрация: 02.09.2015
Сообщений: 7

вот немного подшаманил с тегом <p> работает
$(document).ready(
$('body').on('click', 'p', function (event) {
    event.preventDefault();
    if (!$('p:hidden').length){
        $(this).hide();  
    } else {
        $('p:hidden').insertAfter(this).show();} 
}));
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В Firefox не работает скрипт в отличии от Opera, Chrome, IE yanagas Javascript под браузер 2 06.08.2013 01:32
Скрипт не выполняется в IE. В остальных браузерах - все работает. tapak123 Internet Explorer 2 20.02.2013 23:06
Скрипт перестал работать в новых версиях firefox, Opera и Chrome, а в IE работает polbear Javascript под браузер 3 30.06.2011 09:34
не работает скрипт с HEX значениями color DeaDiK Общие вопросы Javascript 2 17.04.2011 15:00
скрипт работает в IE не работает в Opera!!! Ikram Opera, Safari и др. 3 29.10.2010 10:04