Показать сообщение отдельно
  #9 (permalink)  
Старый 11.11.2014, 21:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Как написать плагин для jquery или закрыть по клику вне элемента
изменён формат опций, добавлена возможность установить свою функцию исчезновения
<!DOCTYPE HTML>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .orange {
            background: #FFCC00;
        }
        .orange + div {
            display: block;
        }
        span {
            cursor: pointer;
        }
        .red {
            background: rgb(255, 20, 20);
        }
    </style>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script>
        jQuery.fn.hide_by_click = (function() {
            var defaults = {
                add: true,
                done: function() {
                    $(this).fadeOut()
                }

            }

            var listSelector = $(),
                tracking = function(event) {
                    listSelector.each(function(i, el) {
                        if (event.target != el && !$(el).has(event.target).length) defaults.done.call(el)
                    })
                }
            return function(options) {
                defaults = $.extend({}, defaults, options);
                $(document).off({
                    'click': tracking
                });
                this.each(function(indx, el) {
                    listSelector = listSelector[defaults.add ? 'add' : 'not'](el);
                });
                listSelector.length && $(document).on({
                    'click': tracking
                });
                return this
            }
        }())

        $(function() {
            $(".block_info_main .info").hide_by_click(); //добавить все span.info для контроля
            $(".orange").hide_by_click({
                'add': true,
                'done': function() {
                    $(this).addClass("red").fadeOut(2000)
                }
            }); // добавить оранжевый, изменить функцию исчезновения
        });
    </script>
</head>

<body>
    <div class='block_info_main' id='test'>1111


        <div class='first'>
            <span class='orange'>Информация</span>
            <div class='main'>
                <span class='info_show show '>текст1</span>
            </div>
        </div>
        <div class='first'>
            <span class='info'>Информация2</span>
            <div class='main'>
                <span class='info_show '><b style="color: rgb(51, 51, 255)">текст2</b></span>
            </div>
        </div>
        <div class='first'>
            <span class='info'>Информация3</span>
            <div class='main'>
                <span class='info_show '>текст3</span>
            </div>
        </div>

    </div>


</body>

</html>

Последний раз редактировалось рони, 28.02.2015 в 21:22.
Ответить с цитированием