• Как сдвинуть вправо колонку?

    Shultc
    @Shultc
    RnD Developer
    Вот, я сделал за вас:
    ab78b6c288ce43bb828e455dca3ae1b4.PNG

    Можете не благодарить!
    Ответ написан
    2 комментария
  • Как обратиться к параметрам функции как к объекту, по аналогии с arguments?

    search
    @search
    мама говорит что я особенный
    В ES6 появились параметры по умолчанию.

    Можно написать

    function doSomething(a='test', b=1, c=true) {
    }


    И если не передавать в doSomething() эти переменные примут значения по умолчанию.

    Вообще обычно когда появляется необходимость в сабже, то просто делают функцию, которая принимает объект с парами ключ-значение, а недостающие в объекте значение дополняет значениями по умолчанию.

    Как-то так:
    function doSomething(options) {
      var defaultOptions = { validate: false, limit: 5, name: "foo" };
      options = $.extend({}, defaultOptions, options || {}); // Дополняем options значениями по умолчанию
    }


    Но если уж прям не терпится получить все параметры из любой функции, то у любой JS функции есть метод toString(), который возвращает код самой функции в виде строки. Это недокументированная особенность, поддерживаемая всеми браузерами. Для эксперимента можете запустить этот код в консоли чтоб видеть наглядно.

    var a = function(a,b,c) {var someCodeInside = true;};
    console.log(a.toString());


    Можете взять полученную в результате toString() строку и выудить из неё аргументы.

    Именно по такому принципу работает Dependency Injection в первом ангуляре.

    Вот тут есть примеры кода по вытягиванию параметров из функций https://stackoverflow.com/questions/1007981/how-to...
    Ответ написан
    Комментировать
  • Как закрывть div при клике вне этого дива?

    copist
    @copist
    Empower people to give
    Поисковая фраза в Google "hide click outside HTML JS"

    https://stackoverflow.com/questions/152975/how-do-...
    https://stackoverflow.com/questions/1403615/use-jq...
    https://stackoverflow.com/questions/13892375/how-t...

    Относительно указанного примера:
    var clickCount = 1;
    $('.button').click(function(event){ // при клике по кнопке - обработать тут, но не давать обработать дальше
      event.stopPropagation();
    	if(clickCount == 1){
    			$(this).children('.show-block').show();
    			clickCount = 2;
    		}else{
    			$(this).children('.show-block').hide();
    			clickCount = 1;
    		}
    });
    
    $('.button .show-block').click(function(event) { // при клике по блоку - вообще проигнорировать, иначе будет закрываться даже если в блок кликнуть
    	event.stopPropagation();
    });
    
    $(window).click(function(event) { // при клике в любом месте страницы - закрывать блок
    	$('.button .show-block').hide();
    });
    Ответ написан
    1 комментарий