Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jguery: Не обрабатывается "клик" в Яндекс-браузере. (https://javascript.ru/forum/jquery/67259-jguery-ne-obrabatyvaetsya-klik-v-yandeks-brauzere.html)

Cер Григорий Первый 06.02.2017 14:21

Jguery: Не обрабатывается "клик" в Яндекс-браузере.
 
Здравствуйте, уважаемые форумчане. Кратко опишу свою проблему. У меня есть код, который срабатывает при клике, он еще не "завершен"(позже сделаю его более универсальным), но он не работает в Яндекс-браузере(я так понимаю у него тот же движок, что и у Хрома). То есть при клике, ничего не происходит. Но он отлично работает в Mozilla Firefox и Internet Explorer.
$(document).ready(function(){
$('#getContent').on('click',function(){
$.ajax({
url: "/page2.php",
cache: false,
beforeSend: function() {$('#divWait').css('display','');},
success: function(data){
	$('#divWait').css('display','none');
	$('#divContent').append(data);
	$('#ajaxels').append($('#divContent').html());
	$('#divContent').html('');}
});
return false;
});
});

С чем это может быть связано? Что посоветуете сделать?

ksa 06.02.2017 16:09

Цитата:

Сообщение от Cер Григорий Первый
То есть при клике, ничего не происходит.

Значит тебе нужно потестить свой код т.с. "по шагам"...

$(document).ready(function(){
	$('#getContent').on('click',function(){
		alert(1);
		$.ajax({
		url: "/page2.php",
		cache: false,
		beforeSend: function() {$('#divWait').css('display','');},
		success: function(data){
			alert(2);
			$('#divWait').css('display','none');
			alert(data);
			$('#divContent').append(data);
			$('#ajaxels').append($('#divContent').html());
			$('#divContent').html('');}
			alert(3);
		});
		return false;
	});
});

laimas 06.02.2017 16:39

Цитата:

Сообщение от Cер Григорий Первый
$('#divContent').append(data);
$('#ajaxels').append($('#divContent').html());
$('#divContent').html('');

И зачем такие сложности?

Cер Григорий Первый 06.02.2017 20:31

В самом Хроме работает. А в Яндекс-браузере нет. Я мог бы понять проблемы с CSS, но с JS проблема непонятная. На сайте полно JS кода, все остальное работает.

Cер Григорий Первый 06.02.2017 20:34

Такая сложность с кодом только для того, чтобы не менять структуру HTML (сайт делаю на фреймворке Laravel), есть и другие JS-коды среди которых важна структура сайта, для динамического добавления контента со стороны пользователя(без перезагрузки).

Cер Григорий Первый 06.02.2017 20:52

Тесты провел в разных браузерах, и "алерт" нигде не вызывается. В итоге скрипт полностью не работает, только в Хроме продолжает работать игнорируя "алерт". Инспектор не показывает ошибок в JS на страничке, а сам "алерт" в Мозилле работает, если запустить его из встроенного редактора js.

laimas 06.02.2017 21:12

Цитата:

Сообщение от Cер Григорий Первый
Такая сложность с кодом только для того, чтобы не менять структуру HTML

А причем тут это? Вот действия, в словах, которые производятся этим фрагментом кода не понятно для чего:

1) строка 09 - поместить в объект А ответ сервера
2) строка 10 - поместить в объект Б содержание объекта А
3) строка 11 - очистить содержание объекта А

почему не:

$('#ajaxels').append($('#divContent').html()+data);


и все?

Cер Григорий Первый 06.02.2017 21:13

поменял также getContent с "div" на "a". Но результаты те же. Хотя Яндекс в этом скрипте не отключает стандартные событие и пытается сделать переход...
$(document).ready(function(){
$('#getContent').on('click',function(e){
e.preventDefault();
$.ajax({
url: "/page2.php",

Cер Григорий Первый 06.02.2017 21:19

Я вас понял, но нельзя сразу поместить ответ сервера в объект Б. Я не силен в AJAXе, но ответ могу поместить только в "div" а мне нужно помещать в "ol". Поэтому сначала принимаю в "div", а потом добавляю в "ol". в противном случает, мне добавляет ненужные "divы" в "ol". Или переносит сразу "div" в "ol".

Cер Григорий Первый 06.02.2017 21:22

Ваш вариант проверил, и он не работает.

Cер Григорий Первый 06.02.2017 22:15

когда добавляю "алерты" для проверки, то все браузеры не реагируют на клик по объекту, только Хром работает так, как будто "алертов" нет.

laimas 07.02.2017 05:12

Цитата:

Сообщение от Cер Григорий Первый
но нельзя сразу поместить ответ сервера в объект Б. Я не силен в AJAXе, но ответ могу поместить только в "div" а мне нужно помещать в "ol". Поэтому сначала принимаю в "div", а потом добавляю в "ol". в противном случает, мне добавляет ненужные "divы" в "ol". Или переносит сразу "div" в "ol".

Что-то тут не то.

Cер Григорий Первый 07.02.2017 07:51

Сам не знаю, но в "ol" данные не хотят приниматься

laimas 07.02.2017 08:07

Цитата:

Сообщение от Cер Григорий Первый
Сам не знаю, но в "ol" данные не хотят приниматься

Значит селектор не верный, а не потому что нельзя.

ksa 07.02.2017 09:07

Цитата:

Сообщение от Cер Григорий Первый
Тесты провел в разных браузерах, и "алерт" нигде не вызывается.

Значит либо не работает твой обработчик... Либо нет обновления скрипта. :)

ksa 07.02.2017 09:08

Цитата:

Сообщение от laimas
Что-то тут не то.

Корабль заколдован... (с) из Питер Пена :D

Cер Григорий Первый 07.02.2017 10:27

хз, но уже по разному пробовал, и это у меня единственный рабочий вариант.

Cер Григорий Первый 07.02.2017 10:33

поменял с "on" на "bind", теперь и я Яндекс-браузере работает.


Часовой пояс GMT +3, время: 07:44.