Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Активные темы » вопросы по javascript

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

Открыть новую тему     Написать ответ в эту тему

D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Просьба взглянуть: https://jsfiddle.net/hdma/73ahvd6r/3/ Заменяю, но без результата

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 06:35 06-10-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
id без решетки, id = 'что_то_тут', ссылка href='#что_то_тут'

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 06:37 06-10-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
у меня тут со склеиванием не получается у запятой
может кто поможет?
 
спасибо

Код:
function My_PopUp_Run(..._id_Main){
 
 //ReactDOM.render([_el_Main[_id_Main[0]],_el_Main[_id_Main[1]]], document.body);
  var _S0001 = null;
  if(1 == arguments.length) {
      _S0001 = eval('_el_Main[arguments[0]]');
  }else if(1 < arguments.length) {
      _S0001 = _el_Main[arguments[0]];
      for (var i=1; i < arguments.length; i++) {
        
        
        _S0001 = _S0001+', '+el_Main[arguments[i]];
         _S0001 = eval(_S0001);
//        alert(_S0001);
        
      }
  }
  alert(_S0001);
//    alert(longest);
eval('ReactDOM.render([_S0001], document.body);');
}

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 17:49 13-10-2020 | Исправлено: vs6262, 17:50 13-10-2020
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
Что такое eval?
что вы передаёте в eval и какой результат хотите получить?

----------
Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 18:02 13-10-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
'ReactDOM.render([_el_Main[arguments[0]], _el_Main[arguments[1]], _el_Main[arguments[2]]], document.body);'

вот сюда мне нужно обьекты втулить по аргументам попорядку

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 18:13 13-10-2020 | Исправлено: vs6262, 18:16 13-10-2020
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
Ошибку в какой строке показывает, там где запятая, где eval или там где вы уже параметры передаёте в функцию?

----------
Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 18:15 13-10-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ошибка там где красная запятая

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 18:20 13-10-2020
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тогда перед этой строкой сделайте проверку переменных.

Код:
console.log(_S0001, typeof _S0001);
console.log(el_Main[arguments[i]], typeof el_Main[arguments[i]])


----------
Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 18:25 13-10-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
this is the complete Code
PS: React not working in IE
 

Код:
<!DOCTYPE html>
<html>
<head>
    <!-- Тег meta для указания кодировки -->
      <meta charset="utf-8">
<!--
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
-->
<!--
    https://babeljs.io/
    https://reactjs.org/
-->
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script src="https://unpkg.com/react@16/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js" crossorigin></script>
 
</head>
<body>
<script>
 
var _el_Main = new Array();
function My_PopUp_Define(_id_Main, _Left_Main, _Top_Main, _Width_Main, _Height_Main) {  
var _co = "green";
//const _el_Main = () => {null};
_el_Main[_id_Main] = React.createElement(
    "div",
    {style:{color:_co, left: _Left_Main, top: _Top_Main, width: _Width_Main, height: _Height_Main, position: 'absolute',  backgroundColor: 'red'}, id: _id_Main, className: "someClass"},
    "Here I am",
  );
   
 // _el_Main.push();
//ReactDOM.render(_el_Main, document.body);
}
function My_PopUp_Run(..._id_Main){
 
 //ReactDOM.render([_el_Main[_id_Main[0]],_el_Main[_id_Main[1]]], document.body);
   
  var _S0001 = null;
  var _S0002 = "\, ";
  if(1 == arguments.length) {
      _S0001 = eval('_el_Main[arguments[0]]');
  }else if(1 < arguments.length) {
      _S0001 = eval('_el_Main[arguments[0]]');
      for (var i=1; i < arguments.length; i++) {
        
        _S0001 = _S0001+eval(_S0002)+eval('_el_Main[arguments[i]]');
         
//        alert(_S0001);
        
      }
  }
//  _S0001 = eval(_S0001);
  alert(_S0001);
//    alert(longest);
eval('ReactDOM.render([_S0001], document.body);');
 
}
 
My_PopUp_Define("_0001", 20, 10, 200, 800);
My_PopUp_Run("_0001");
 
My_PopUp_Define("_0002", 300, 10, 200, 800);
My_PopUp_Run("_0001","_0002");
 
//document.getElementById("_0001").style.color = "blue";
 
</script>
</body>
</html>

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 20:44 13-10-2020 | Исправлено: vs6262, 20:45 13-10-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
на кой черт вам сдался React для создания простого дива?
и использование eval это плохо и очень медленно.
 

Цитата:
 _S0001 = _S0001+', '+el_Main[arguments[i]];

подчеркивания перед el_Main нет.  
 
ну и  

Цитата:
         _S0001 = eval(_S0001);

не должно быть внутри цикла. но все сделано чересчур топорно.
 
к тому же в render идет массив, тут строка и eval вообще не нужны.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 21:11 13-10-2020 | Исправлено: Mavrikii, 23:24 13-10-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALL OK, for use. witout eval()
PS: в IE не работает React

Код:
<!DOCTYPE html>
<html>
<head>
    <!-- Тег meta для указания кодировки -->
      <meta charset="utf-8">
<!--
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
-->
<!--
    https://babeljs.io/
    https://reactjs.org/
-->
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script src="https://unpkg.com/react@16/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js" crossorigin></script>
 
</head>
<body>
<script>
 
var _el_Main = new Array();
function My_PopUp_Define(_id_Main, _Left_Main, _Top_Main, _Width_Main, _Height_Main) {  
var _co = "green";
//const _el_Main = () => {null};
_el_Main[_id_Main] = React.createElement(
    "div",
    {style:{color:_co, left: _Left_Main, top: _Top_Main, width: _Width_Main, height: _Height_Main, position: 'absolute',  backgroundColor: 'red'}, id: _id_Main, className: "someClass"},
    "Here I am",
  );
 
}
function My_PopUp_Run(..._id_Main){
    var _S0001 = [_el_Main[arguments[0]]];
    if(1 < arguments.length) {
        for (var i=1; i < arguments.length; i++) {
            _S0001.push(_el_Main[arguments[i]]);
        }
      }
    ReactDOM.render(_S0001, document.body);
}
 
 
My_PopUp_Define("_0001", 20, 10, 200, 800);
My_PopUp_Run("_0001");
 
My_PopUp_Define("_0002", 300, 10, 200, 800);
My_PopUp_Run("_0001","_0002");
 
My_PopUp_Define("_0003", 600, 10, 200, 800);
My_PopUp_Run("_0001","_0002","_0003");
 
document.getElementById("_0001").style.color = "blue";
 
</script>
</body>
</html>


Цитата:
 ReactDOM.render([_S0001], document.body);  

исправил

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 00:23 14-10-2020 | Исправлено: vs6262, 01:17 14-10-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
[_S0001]

_S0001 уже массив, зачем увеличивать вложенность?
 

Цитата:
ALL OK, for use. witout eval()

п. 1. главы VI Соглашения по использованию

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 00:27 14-10-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
_S0001 уже массив,  

на быструю руку не найду как изменить

Цитата:
ALL OK, for use. witout eval()  

постараюсь исправиться

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 00:40 14-10-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
на быструю руку не найду как изменить

не использовать квадратные скобки в
Цитата:
ReactDOM.render([_S0001], document.body);


Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 00:44 14-10-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
спасибо ещё раз.
вот я и реактом немного позанимался
 
Добавлено:

Цитата:
 ReactDOM.render([_S0001], document.body);  

исправил

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 00:53 14-10-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<script src="https://unpkg.com/@babel/polyfill/dist/polyfill.min.js"></script>

этот polyfill я вставил. какой polyfill ещё нужен чтобы React по крайней мере в IE11 работал?
 
заранее спасибо

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 03:06 14-10-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
https://www.npmjs.com/package/react-app-polyfill

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 03:11 14-10-2020
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть конструкция со множеством вложенных кавычек —
 
'<a href="javascript:openImage(^' + options.value + '^)" ... '
 
Как правильно вписать необходимые тут одинарные кавычки до и после ' + options.value + ', вместо красного?

Всего записей: 1362 | Зарегистр. 05-04-2010 | Отправлено: 15:58 17-10-2020 | Исправлено: D1D1D1D, 16:01 17-10-2020
VVL99

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
\'

----------
Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 16:27 17-10-2020
Weinaum



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую, есть скрипт, который обрабатывает событие по клику на элемент какого-то блока страницы. Для примера, пусть блок это карточка товара, а элемент, клик по которому обрабатывается, какой -то линк с информацией. Скрипт по клику подгружает сторонний элемент с нужной информацией в модальном окне.
В обычной ситуации нет ничего сложного - карточки товара и соотв-но нужные элементы- линки- подгружаются раньше скрипта, все работает нормально.
Но вот есть еще нестандартная ситуация: карточки товаров, которые определяются как последние просмотренные, подгружаются динамически, как js компоненты, другим скриптом, и подгружаются они уже после полной загрузки DOM, и естественно что нужный скрипт, который выполняет обработку кликов, уже тоже подгрузился, и не работает с кликами по линкам на этих динамических карточках.
Все варианты, которые рекомендуют для того, чтобы скрипт был запущен гарантированно после полной загрузки страницы (например, способы, указанные здесь) не работают, так как, если я правильно понимаю, эти динамические подгружаемые компоненты не являются элементами DOM.
Единственное, что срабатывает, это таймаут, причем, в моем случае, гарантированно срабатывает от 3 секунд.
Но тут встает дилемма: я не хочу дублировать код и потому хочу использовать один скрипт на все случаи. В этом варианте, если я ставлю таймаут 3 секунды, на обычных страницах, где карточки являются частью DOM, задержка в 3 секунды является чрезмерной.
Вопрос - можно как то сделать, чтобы использовать один этот скрипт так, чтобы когда карточки - часть DOM, он бы срабатывал без задержки, а когда они динамические, то он тоже корректно выполнялся?

Всего записей: 2152 | Зарегистр. 18-06-2006 | Отправлено: 09:55 30-10-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

Компьютерный форум Ru.Board » Интернет » Web-программирование » Активные темы » вопросы по javascript


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru