Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 16.02.2018, 10:44
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,108

Сообщение от kvizor34
объясните только, как в данном случае будет расцениваться вызов функций?
Обычный вызов и все. Только this не сохраняется в ее контексте.

Вот вариант с сохранением контекста this
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
.search-filter{
    margin: 15px;
    display: block;
    color: #91959d;
    font-size: 14px;
    font-weight: 400;
    line-height: 18px;
    border: 1px solid #444444;
    height: 40px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    user-select: none;
    width: 300px
}
.search-filter__value{
    color:  #91959d;
    font-size: 14px;
    font-weight: 400;
    line-height: 40px;
    padding-right: 30px;
    padding-left: 16px;
}
.search-filter__box {
    line-height: 40px;
    background-color: #fff;
}
.search-filter__box li{
    padding-right: 30px;
    padding-left: 16px;
}
.search-filter__box li:hover{
    background-color: #BBBBBB;
    color: #fff;
}
</style>
<script type='text/javascript'>
function selectboxopen() {
	alert('Функция - '+this.tagName);
    var currentValue = $(this).parent().css("overflow");
    if (currentValue == "hidden") {
        $(this).parent().css({"overflow":"visible","border-bottom-color":"transparent","background-color":"#F9F9F9"});
    }
    else {
        $(this).parent().css({"overflow":"hidden","border-bottom-color":"#E5E5E5","background-color":"transparent"});
    }
}
function selectboxselect() {
	alert('Функция - '+this.tagName);
    $(this).parent().parent().css({"overflow":"hidden","border-bottom-color":"#E5E5E5","background-color":"transparent"});
    $(this).parent().siblings("p").text($(this).text());
}
$(document).ready(function (){
    $('.search-filter > p.search-filter__value').click(function () {
		alert('Обработчик - '+this.tagName);
        selectboxopen.call(this);
    });
    $('.search-filter__box > li').click(function () {
		alert('Обработчик - '+this.tagName);
        selectboxselect.call(this);
    })
});
</script>
</head>
<body>
<div class="search-filter">
	<p class="search-filter__value">Поручения&nbsp;и&nbsp;рекомендации</p>
	<ul class="search-filter__box">
		<li>Поручения&nbsp;и&nbsp;рекомендации</li>
		<li>Служебные&nbsp;переписки</li>
		<li>Распорядительные&nbsp;документы</li>
	</ul>
</div>
</body>
</html>

А можно его просто параметром передать при обычном вызове...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
.search-filter{
    margin: 15px;
    display: block;
    color: #91959d;
    font-size: 14px;
    font-weight: 400;
    line-height: 18px;
    border: 1px solid #444444;
    height: 40px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    user-select: none;
    width: 300px
}
.search-filter__value{
    color:  #91959d;
    font-size: 14px;
    font-weight: 400;
    line-height: 40px;
    padding-right: 30px;
    padding-left: 16px;
}
.search-filter__box {
    line-height: 40px;
    background-color: #fff;
}
.search-filter__box li{
    padding-right: 30px;
    padding-left: 16px;
}
.search-filter__box li:hover{
    background-color: #BBBBBB;
    color: #fff;
}
</style>
<script type='text/javascript'>
function selectboxopen(Obj) {
	alert('Функция - '+Obj.tagName);
    var currentValue = $(Obj).parent().css("overflow");
    if (currentValue == "hidden") {
        $(Obj).parent().css({"overflow":"visible","border-bottom-color":"transparent","background-color":"#F9F9F9"});
    }
    else {
        $(Obj).parent().css({"overflow":"hidden","border-bottom-color":"#E5E5E5","background-color":"transparent"});
    }
}
function selectboxselect(Obj) {
	alert('Функция - '+Obj.tagName);
    $(Obj).parent().parent().css({"overflow":"hidden","border-bottom-color":"#E5E5E5","background-color":"transparent"});
    $(Obj).parent().siblings("p").text($(Obj).text());
}
$(document).ready(function (){
    $('.search-filter > p.search-filter__value').click(function () {
		alert('Обработчик - '+this.tagName);
        selectboxopen(this);
    });
    $('.search-filter__box > li').click(function () {
		alert('Обработчик - '+this.tagName);
        selectboxselect(this);
    })
});
</script>
</head>
<body>
<div class="search-filter">
	<p class="search-filter__value">Поручения&nbsp;и&nbsp;рекомендации</p>
	<ul class="search-filter__box">
		<li>Поручения&nbsp;и&nbsp;рекомендации</li>
		<li>Служебные&nbsp;переписки</li>
		<li>Распорядительные&nbsp;документы</li>
	</ul>
</div>
</body>
</html>
Ответить с цитированием
  #12 (permalink)  
Старый 16.02.2018, 11:08
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Да, всё разобрался!
А вот теперь уважаемые форумчане, скажите можно ли продлить жизненный цикл авторизации на этом форуме???)
Ответить с цитированием
  #13 (permalink)  
Старый 16.02.2018, 11:49
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,482

kvizor34, при авторизации отметьте галочку "запомнить меня" (или как-то так).
Сегодня второй раз за полтора года авторизовался.
Ответить с цитированием
  #14 (permalink)  
Старый 16.02.2018, 11:59
Аватар для kvizor34
Аспирант
Отправить личное сообщение для kvizor34 Посмотреть профиль Найти все сообщения от kvizor34
 
Регистрация: 08.02.2018
Сообщений: 50

Сообщение от Nexus
или как-то так
А точно!)
Ответить с цитированием
  #15 (permalink)  
Старый 16.02.2018, 12:22
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 13,108

А если еще и браузеру "сказать", чтобы запомнил авторизацию на этом сайте - вообще проблем с этим не будет.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как по событию click function запустить lightbox функцию? cheizer jQuery 0 04.01.2018 23:09
draggable (запрет click для родителей компонента) khusamov ExtJS 5 13.04.2015 11:45
Помогите с событием click Dolphin48rus Общие вопросы Javascript 1 06.12.2014 18:40
проблема с событием click. morfie jQuery 1 14.10.2010 03:33
live click выполняется несколько раз hara jQuery 9 09.06.2010 09:58