Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2017, 14:21
Интересующийся
Отправить личное сообщение для Cер Григорий Первый Посмотреть профиль Найти все сообщения от Cер Григорий Первый
 
Регистрация: 06.02.2017
Сообщений: 11

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;
});
});

С чем это может быть связано? Что посоветуете сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2017, 16:09
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,210

Сообщение от 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;
	});
});
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2017, 16:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Cер Григорий Первый
$('#divContent').append(data);
$('#ajaxels').append($('#divContent').html());
$('#divContent').html('');
И зачем такие сложности?
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2017, 20:31
Интересующийся
Отправить личное сообщение для Cер Григорий Первый Посмотреть профиль Найти все сообщения от Cер Григорий Первый
 
Регистрация: 06.02.2017
Сообщений: 11

В самом Хроме работает. А в Яндекс-браузере нет. Я мог бы понять проблемы с CSS, но с JS проблема непонятная. На сайте полно JS кода, все остальное работает.
Ответить с цитированием
  #5 (permalink)  
Старый 06.02.2017, 20:34
Интересующийся
Отправить личное сообщение для Cер Григорий Первый Посмотреть профиль Найти все сообщения от Cер Григорий Первый
 
Регистрация: 06.02.2017
Сообщений: 11

Такая сложность с кодом только для того, чтобы не менять структуру HTML (сайт делаю на фреймворке Laravel), есть и другие JS-коды среди которых важна структура сайта, для динамического добавления контента со стороны пользователя(без перезагрузки).
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2017, 20:52
Интересующийся
Отправить личное сообщение для Cер Григорий Первый Посмотреть профиль Найти все сообщения от Cер Григорий Первый
 
Регистрация: 06.02.2017
Сообщений: 11

Тесты провел в разных браузерах, и "алерт" нигде не вызывается. В итоге скрипт полностью не работает, только в Хроме продолжает работать игнорируя "алерт". Инспектор не показывает ошибок в JS на страничке, а сам "алерт" в Мозилле работает, если запустить его из встроенного редактора js.
Ответить с цитированием
  #7 (permalink)  
Старый 06.02.2017, 21:12
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Cер Григорий Первый
Такая сложность с кодом только для того, чтобы не менять структуру HTML
А причем тут это? Вот действия, в словах, которые производятся этим фрагментом кода не понятно для чего:

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

почему не:

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


и все?
Ответить с цитированием
  #8 (permalink)  
Старый 06.02.2017, 21:13
Интересующийся
Отправить личное сообщение для Cер Григорий Первый Посмотреть профиль Найти все сообщения от Cер Григорий Первый
 
Регистрация: 06.02.2017
Сообщений: 11

поменял также getContent с "div" на "a". Но результаты те же. Хотя Яндекс в этом скрипте не отключает стандартные событие и пытается сделать переход...
$(document).ready(function(){
$('#getContent').on('click',function(e){
e.preventDefault();
$.ajax({
url: "/page2.php",
Ответить с цитированием
  #9 (permalink)  
Старый 06.02.2017, 21:19
Интересующийся
Отправить личное сообщение для Cер Григорий Первый Посмотреть профиль Найти все сообщения от Cер Григорий Первый
 
Регистрация: 06.02.2017
Сообщений: 11

Я вас понял, но нельзя сразу поместить ответ сервера в объект Б. Я не силен в AJAXе, но ответ могу поместить только в "div" а мне нужно помещать в "ol". Поэтому сначала принимаю в "div", а потом добавляю в "ol". в противном случает, мне добавляет ненужные "divы" в "ol". Или переносит сразу "div" в "ol".
Ответить с цитированием
  #10 (permalink)  
Старый 06.02.2017, 21:22
Интересующийся
Отправить личное сообщение для Cер Григорий Первый Посмотреть профиль Найти все сообщения от Cер Григорий Первый
 
Регистрация: 06.02.2017
Сообщений: 11

Ваш вариант проверил, и он не работает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Съехал текст в Opera 26 и в новом браузере от Яндекс YouTy6bl4 Opera, Safari и др. 0 28.11.2014 21:41