Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.07.2017, 10:22
ef1 ef1 вне форума
Интересующийся
Отправить личное сообщение для ef1 Посмотреть профиль Найти все сообщения от ef1
 
Регистрация: 07.07.2017
Сообщений: 19

уникальноcть id ключа (php) и имени функции (jscript) под него
всем привет, подскажите, сделал компонент на битриксе, на странице планирую использовать его несколько раз - т.е. нужно обеспечить уникальность по ключам и обработке
делаю так, например

<?php
инициализирую уникальный ключ
$uid=uniqid();
...
использую уникальный ключ для составного id
<div id="<?=$uid?>_hover_byDir" uk-dropdown="mode: hover; ">
...
?>


<script>
передаю уникальный ключ в скрипт
var uid="<?=$uid?>";

пытаюсь оформить составное имя функции под составной id
$('#' + uid + '_hover_byDir').on('beforehide', function () {....

</script>


функция не срабатывает (имя в таком виде не воспринимается) - подскажите как правильно оформить функцию из переменной для данного случая?
Ответить с цитированием
  #2 (permalink)  
Старый 12.07.2017, 10:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В id можно объединять через дефис, нижнее подчеркивание, точкой, но не пробелом, это в именах классов они доступны.
Ответить с цитированием
  #3 (permalink)  
Старый 12.07.2017, 11:31
ef1 ef1 вне форума
Интересующийся
Отправить личное сообщение для ef1 Посмотреть профиль Найти все сообщения от ef1
 
Регистрация: 07.07.2017
Сообщений: 19

сори, - кеш не сбросил, тему закрываю
ps
Спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 12.07.2017, 11:43
ef1 ef1 вне форума
Интересующийся
Отправить личное сообщение для ef1 Посмотреть профиль Найти все сообщения от ef1
 
Регистрация: 07.07.2017
Сообщений: 19

хотя, если продолжить по уникальности - еще один вопрос

допустим я использую компонент два раза на странице - уникальность по селекторам для php и обработчикам jscript есть

а как поступать с переменными в jscript? - (я еще не совсем в теме)
когда смотрю код страницы вижу два идентичных блока <script> в каждом из которых, например, используется структура с одним и тем же именем например
var str_href = {
		sort_byDir:"asc",
		sort_byName: "Наименование"
	}

она (str_href) в рамках страницы (в рамках одного из блоков script) будет локальной? или глобальной для всей страницы (использоваться по первому включению) и ее нужно тоже модифицировать с уникальным ключом?

Последний раз редактировалось ef1, 12.07.2017 в 11:54.
Ответить с цитированием
  #5 (permalink)  
Старый 12.07.2017, 12:06
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

ef1,
Сообщение от ef1
она (str_href) в рамках страницы (в рамках одного из блоков script) будет локальной? или глобальной для всей страницы
А Вы проверьте)
<script>
var str_href = {
        sort_byDir:"asc",
        sort_byName: "Наименование"
    }
alert("0 " + str_href.sort_byDir);
</script>
<body>
	<script>
	alert("1 " + str_href.sort_byDir);
	</script>
</body>
<script>
alert("2 " + str_href.sort_byDir);
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 12.07.2017, 12:26
ef1 ef1 вне форума
Интересующийся
Отправить личное сообщение для ef1 Посмотреть профиль Найти все сообщения от ef1
 
Регистрация: 07.07.2017
Сообщений: 19

глобальная, ясно, т.е. нужно разруливать через экземпляры класса содержащего эту структуру?
Ответить с цитированием
  #7 (permalink)  
Старый 12.07.2017, 12:52
Профессор
Отправить личное сообщение для Manyasha Посмотреть профиль Найти все сообщения от Manyasha
 
Регистрация: 21.09.2015
Сообщений: 196

Не знаю, кода маловато...
Может так пойдет?
<script>
var str_href = [];
</script>

<script>
str_href.push({
        sort_byDir:"asc0",
        sort_byName: "Наименование"
    });
alert(JSON.stringify(str_href));
</script>
<body>
	<script>
	str_href.push({
			sort_byDir:"asc1",
			sort_byName: "Наименование"
		});
	alert(JSON.stringify(str_href));
	</script>
</body>
<script>
str_href.push({
        sort_byDir:"asc2",
        sort_byName: "Наименование"
    });
alert(JSON.stringify(str_href));
</script>
Ответить с цитированием
  #8 (permalink)  
Старый 12.07.2017, 13:31
ef1 ef1 вне форума
Интересующийся
Отправить личное сообщение для ef1 Посмотреть профиль Найти все сообщения от ef1
 
Регистрация: 07.07.2017
Сообщений: 19

как вариант, но не очень красиво
в любом случае - Спасибо! (ушел читать мануал по jscript)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скобки после имени функции. В чем разница, если они есть и если их нет? jsuse Общие вопросы Javascript 2 19.11.2011 16:11