Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2015, 13:03
Новичок на форуме
Отправить личное сообщение для govorusha Посмотреть профиль Найти все сообщения от govorusha
 
Регистрация: 07.05.2015
Сообщений: 6

Не работает ajax при OnClick по ссылке firefox
Добрый день!

Вешаю простейшую ajax-функцию (передать-получить данные) на событие OnClick ссылки или кнопки. В хроме, ИЕ, опере, все работает, а в мозиле - сразу же происходит переход. Если заменить ссылку на # - все работает. Если заменить ajax на просто вызов alert - все работает и со ссылкой. А вот чтобы была ссылка, и работала функция - не получается...

Пожалуйста, подскажите, что я упускаю.

<p><a href="#" OnClick="myFUNC()"> Пустой href, работает </a></p>
<p><a href="#" OnClick="myFUNC2()"> Просто ALERT, работает </a></p>
<p><a href="www.yandex.ru" OnClick="myFUNC()"> Ссылка в href, axaj, не работает? просто переход на страницу </a></p>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
function myFUNC()
	{

$.ajax({
  type: 'POST',
	url: 'test.php',
  data: 'name=Andrew&nickname=Aramis',
  success: function(data){
    alert(data);
  }
});
	}
function myFUNC2()
	{

		alert ("успех");
	}


</script>

В test.php - просто отдаем полученные данные

<?
echo 'Пример 2 - передача завершилась успешно. Параметры: name = ' . $_POST['name'] . ', nickname= ' . $_POST['nickname'];
?>
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2015, 13:23
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

а return false; не пробовали?
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2015, 13:28
Новичок на форуме
Отправить личное сообщение для govorusha Посмотреть профиль Найти все сообщения от govorusha
 
Регистрация: 07.05.2015
Сообщений: 6

Разобралась.
Надо было добавить
async: false,
cache: false,
Ответить с цитированием
  #4 (permalink)  
Старый 06.06.2015, 13:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

govorusha,
OnClick="myFUNC(event)"

function myFUNC(event)
{
event.preventDefault()
$.ajax({
Ответить с цитированием
  #5 (permalink)  
Старый 06.06.2015, 13:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

Сообщение от govorusha
Надо было добавить
не делайте так, если не хотите потерять посетителей.
Ответить с цитированием
  #6 (permalink)  
Старый 06.06.2015, 13:36
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

https://learn.javascript.ru/default-browser-action - читать сдесь
Ответить с цитированием
  #7 (permalink)  
Старый 06.06.2015, 13:38
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от govorusha
Надо было добавить
async: false,
cache: false,
Рони правду говорит!
Синхронные запросы и не кеширование это плохо!
Ответить с цитированием
  #8 (permalink)  
Старый 06.06.2015, 13:58
Новичок на форуме
Отправить личное сообщение для govorusha Посмотреть профиль Найти все сообщения от govorusha
 
Регистрация: 07.05.2015
Сообщений: 6

Сообщение от рони Посмотреть сообщение
govorusha,
OnClick="myFUNC(event)"

function myFUNC(event)
{
event.preventDefault()
$.ajax({
Так мы отменяем переход по ссылке, а мне же не надо его отменять. Мне надо чтобы он просто произошел после моего скрипта.
Ответить с цитированием
  #9 (permalink)  
Старый 06.06.2015, 14:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от govorusha
Так мы отменяем переход по ссылке, а мне же не надо его отменять. Мне надо чтобы он просто произошел после моего скрипта.
event.preventDefault()
e = this;
$.ajax({
....
success: function(data){
.....
e.click();
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает анимация при загрузки ajax ArtOs Общие вопросы Javascript 0 24.05.2012 17:52
Полноценная история при Ajax. Krylovech AJAX и COMET 1 03.03.2012 03:11
$.ajax работает без success но при этом часть кода перезагружается!? saturn Элементы интерфейса 0 16.10.2011 10:09
Событие onClick при нажатии пункта меню Lex4e Общие вопросы Javascript 1 25.06.2010 18:31
FireFox: onmouseover не работает при зажатой кнопке мыши no. Общие вопросы Javascript 4 19.08.2008 13:43