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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 117 118 119 120 121 122 123 124 125

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

KrgUser

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Цитата:
Где вы там перегрузку увидели?
"Перегрузка" тут в обычном смысле, а не ООП
Цитата:
Напоминает, что внутри объект jquery
Ну, хоть в этом какая-то логика
 
Спасибо

Всего записей: 87 | Зарегистр. 26-04-2011 | Отправлено: 08:13 20-07-2016
Mavrikii

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

Цитата:
"Перегрузка" тут в обычном смысле, а не ООП

нет тут никакого переопределения. jQuery может использовать $, но $ и $list - разные вещи.

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 08:15 20-07-2016
KrgUser

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как обрабатывается ситуация, когда в коде, подобном
Код:
$("#SomeField").SomeAction...
поле #SomeField задан через параметр, например
Код:
var FieldName ="#SomeField"
? Надо писать что-то вроде
Код:
$(FieldName).SomeAction...
(хотя сомневаюсь в этом варианте)?
 
Спасибо

Всего записей: 87 | Зарегистр. 26-04-2011 | Отправлено: 12:07 20-07-2016
Mavrikii

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

Цитата:
 Надо писать что-то вроде

Да

Цитата:
хотя сомневаюсь в этом варианте

Проще же попробовать, чем ждать ответ.

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 12:31 20-07-2016
xerpal



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть кнопка, по которой выполняется запрос к серверу через аякс. При загрузке  страницы пытаюсь на неё кликнуть, чтобы запрос выполнился и один из дивов обновился.  

Код:
$(document).ready(function(){
    $('#edit-panes-quotes-quote-button').click(function(){
         alert('click is here');
  });    
 
    $("#edit-panes-quotes-quote-button").click();
    //$('#edit-panes-quotes-quote-button').trigger('click');
 });  

 
Клик проходит - это я вижу, алерт туда прицепил - но сам запрос не идет на сервер.
В чем может быть причина?

Всего записей: 1654 | Зарегистр. 08-10-2011 | Отправлено: 10:32 19-08-2016 | Исправлено: xerpal, 10:50 19-08-2016
Mavrikii

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

Цитата:
$('#edit-panes-quotes-quote-button').trigger('click');

 

Цитата:
но сам запрос не идет на сервер

ну, как бы, неплохо увидеть и тот код. плюс смотреть консоль в браузере на наличие сообщений.

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 10:35 19-08-2016
xerpal



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

Цитата:
ну, как бы, неплохо увидеть и тот код.  

Какой именно? Поясню что происходит - по нажатию на кнопку идет запрос на скрипт на сервере, по которому обновляется один из дивов. Я на сервере  добавил левый код - и он виден, когда я сам нажимаю на кнопку. А вот когда программно - запрос на сервер не идет.  
 

Цитата:
плюс смотреть консоль в браузере на наличие сообщений.

В Chrome ниче не вижу - может не туда смотрю. Но повторюсь - alert то вылазит, значит клик есть по кнопке.  
 
Ещё одно решение  - обновить один раз страницу, но не выходит - зацикливается обновление. Это вообще возможно - обновить страницу только ОДИН РАЗ скриптом?

Всего записей: 1654 | Зарегистр. 08-10-2011 | Отправлено: 10:49 19-08-2016 | Исправлено: xerpal, 10:51 19-08-2016
Mavrikii

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

Цитата:
Какой именно?  

который делает ajax запрос.

Цитата:
Но повторюсь - alert то вылазит, значит клик есть по кнопке.

но ajax то запрос не идет. скорее всего попытка на другой домен, тогда будет сообщение в консоли браузера о кроссдоменном запросе.
 

Цитата:
Это вообще возможно - обновить страницу только ОДИН РАЗ скриптом?

можно, добавлять метку, что обновление было - в куки или GET аргумент в адресе (то, что идет после знака вопроса).  
 
 

Цитата:
Я на сервере  добавил левый код - и он виден, когда я сам нажимаю на кнопку. А вот когда программно - запрос на сервер не идет.  

я не вижу как реализован ваш ajax запрос, на что он реагирует, поэтому и сказать не могу ничего

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 10:53 19-08-2016 | Исправлено: Mavrikii, 10:54 19-08-2016
xerpal



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

Цитата:
можно, добавлять метку, что обновление было - в куки или GET аргумент в адресе (то, что идет после знака вопроса).  

Оба-на, и правда. Про GET реальный вариант. А как это лучше сделать - например как добавить &second=1? Нужно как понимаю просто при загрузке отправить на текущий адрес?second=1 и поставить проверку, чтобы когда second=1 не отправлять?  
 

Цитата:
который делает ajax запрос.

Это я в одной из CMS - там jquery вшит, и запрос идет стандартными методами этой системы на сервер - отправляются эта форма нажатием по аяксу нажатием на кнопку. Но всю форму отправлять нельзя - опять же зацикливание идет.  
 

Цитата:
но ajax то запрос не идет. скорее всего попытка на другой домен, тогда будет сообщение в консоли браузера о кроссдоменном запросе.

Нет, почему - см выше

Всего записей: 1654 | Зарегистр. 08-10-2011 | Отправлено: 11:01 19-08-2016 | Исправлено: xerpal, 11:03 19-08-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xerpal
добавлять можно что угодно и как хочется.
 

Цитата:
там jquery вшит, и запрос идет стандартными методами этой системы на сервер - отправляются эта форма нажатием по аяксу нажатием на кнопку.  

значит что то упускаете. например вызов идет не при нажатии на кнопку, а событие идет выше и там перехватывается. Не факт (не помню), что запуск триггер пузырит событие.

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 11:06 19-08-2016
xerpal



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

Цитата:
значит что то упускаете. например вызов идет не при нажатии на кнопку, а событие идет выше и там перехватывается. Не факт (не помню), что запуск триггер пузырит событие.

ну как можно упускать? Ну нажатие на кнопку то идет.  

Код:
 
 
<input type="submit" id="edit-panes-quotes-quote-button" name="op" value="click for shipping" class="form-submit ajax-processed">
 
 

Там и спецкласс как видите привязан чтобы аякс-запрос шел.  
 
Ввообщем вы меня осенили с GET-параметром - я так и сделал, все заработало. Непонятно почему не работало по клику - думаю просто по клику запрос самостоятельно не идет, форма е должна отправляться, а она не отправляется. Может это ограничение в самом jQuery?

Всего записей: 1654 | Зарегистр. 08-10-2011 | Отправлено: 11:23 19-08-2016
Mavrikii

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

Цитата:
Может это ограничение в самом jQuery?

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

Цитата:
Ну нажатие на кнопку то идет.

когда вы на что то жмете, событие нажатия идет от элемента к его родителю и выше, если не остановлено. мне нужно видеть и попробовать, чтобы сказать в чем причина.

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 11:25 19-08-2016
xerpal



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

Цитата:
когда вы на что то жмете, событие нажатия идет от элемента к его родителю и выше, если не остановлено. мне нужно видеть и попробовать, чтобы сказать в чем причина.

Ну я привел код кнопки - обычный submit как видите, по его нажатию отправляется форма на сервер.  
   Форму также можно отправить на сервер через $('#name-form').submit(); - я проверял. А по клику нельзя - сдается мне это ограничение именно системы.  
 
Добавлено:
Mavrikii

Цитата:
мне нужно видеть и попробовать, чтобы сказать в чем причина.

Нет, я конечно могу все предоставить, если хотите проверить. CMS Drupal7 нулевый ставите, пару стандартных модулей и тд, дальше могу написать, че куда поставить.

Всего записей: 1654 | Зарегистр. 08-10-2011 | Отправлено: 11:57 19-08-2016 | Исправлено: xerpal, 12:03 19-08-2016
BennyBlanco



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

Код:
<iframe></iframe>
 
<div class="deb">
<iframe></iframe>
</div>
 
 
 
<div id="mess"></div>
 
<script>
var monitor = setInterval(function(){
    var elem = document.activeElement;
    if(document.activeElement && document.activeElement.tagName == 'IFRAME'){
        mess.innerHTML = 'Clicked';
        clearInterval(monitor);
    }
}, 100);
 
</script>

 
Как сделать чтобы скрипт срабатывал только на iframe который обернут в class="deb" ?

Всего записей: 1995 | Зарегистр. 17-09-2009 | Отправлено: 14:14 03-11-2016
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BennyBlanco
Берете родителя .parentNode и проверяете наличие класса. Если класс один, то просто .className == 'имя_класса'
Либо, что лучше, как тут - http://stackoverflow.com/questions/5085567/hasclass-with-javascript
Если родитель может быть далеко, то в цикле.
 
https://learn.javascript.ru/traversing-dom

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 16:29 03-11-2016 | Исправлено: Mavrikii, 16:31 03-11-2016
BennyBlanco



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

Цитата:
Берете родителя .parentNode и проверяете наличие класса. Если класс один, то просто .className == 'имя_класса'

Спасибо.
 
 if(document.activeElement && document.activeElement.tagName == 'IFRAME' && document.activeElement.parentNode.className == 'deb')

Код:
 
<div class="deb">  
 <iframe></iframe>  
 </div>
 

 
Так работает.  
 
А если так:

Код:
 
<div class="deb">  
<div>  
<div>  
<div>  
 <iframe></iframe>  
 </div>
 </div>
 </div>
</div>
 

то не работает.  

Цитата:
Если родитель может быть далеко, то в цикле.

Это как?

Всего записей: 1995 | Зарегистр. 17-09-2009 | Отправлено: 17:44 03-11-2016 | Исправлено: BennyBlanco, 18:00 03-11-2016
Mavrikii

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

Цитата:
Это как?  

ну здрасти.. поднимаемся вверх до тех пор, пока не нашли элемент с нужным классом или не достигли body. самим разве не интересно написать?

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 20:53 03-11-2016
BennyBlanco



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

Цитата:
самим разве не интересно написать?

Не знаю как

Всего записей: 1995 | Зарегистр. 17-09-2009 | Отправлено: 22:56 03-11-2016
Mavrikii

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

Цитата:
Не знаю как  

вот, навскидку, простое решение

Код:
Element.prototype.hasClass = function(name) {
  return (" " + this.className + " ").replace(/[\n\t]/g, " ").indexOf(" " + name + " ") > -1;
}
Element.prototype.parentHasClass = function(name) {
  var el = this.parentNode;
  while(!el.hasClass(name))
  {
    if (el.tagName == 'BODY') return false;
    el = el.parentNode;
  }
  return true;
}

 
все, document.activeElement.parentHasClass('deb') решит проблемы.
document.activeElement.hasClass('deb') проверит есть ли класс у конкретного элемента.

Всего записей: 16419 | Зарегистр. 20-09-2014 | Отправлено: 23:05 03-11-2016
BennyBlanco



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

Цитата:
все, document.activeElement.parentHasClass('deb') решит проблемы.

 
Сюда?
 
 if(document.activeElement && document.activeElement.tagName == 'IFRAME' && document.activeElement.parentHasClass('deb'))

Всего записей: 1995 | Зарегистр. 17-09-2009 | Отправлено: 23:19 03-11-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 117 118 119 120 121 122 123 124 125

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru