Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2016, 03:55
Интересующийся
Отправить личное сообщение для fi.adm Посмотреть профиль Найти все сообщения от fi.adm
 
Регистрация: 26.08.2013
Сообщений: 10

Не срабатывает on('click')
Никак не могу запустить функцию по щелчку... Посмотрите, пожалуйста, в чем ошибка?

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<body>
<div id="clickit">
<label class="pretty-upload">
<i class="mdi mdi-cloud-upload"></i>
<span class="upload-button-label">Текст</span>
</label>
</div>
<script>
$('body').on('click', 'div#clickit', function(e) {
 alert('щелк!');
});
</script>
</body>

Последний раз редактировалось fi.adm, 07.06.2016 в 16:04.
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2016, 08:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

fi.adm,
где jquery?
Ответить с цитированием
  #3 (permalink)  
Старый 07.06.2016, 14:46
Интересующийся
Отправить личное сообщение для fi.adm Посмотреть профиль Найти все сообщения от fi.adm
 
Регистрация: 26.08.2013
Сообщений: 10

рони,
В каком смысле где?
Ответить с цитированием
  #4 (permalink)  
Старый 07.06.2016, 15:21
Аватар для Botik21
Аспирант
Отправить личное сообщение для Botik21 Посмотреть профиль Найти все сообщения от Botik21
 
Регистрация: 01.06.2016
Сообщений: 87

fi.adm,
На странице нет загрузки jQuery библиотеки, потому ничего и не работает.
Или она загружается после этого кода, и потому ничего не работает
Ответить с цитированием
  #5 (permalink)  
Старый 07.06.2016, 16:10
Интересующийся
Отправить личное сообщение для fi.adm Посмотреть профиль Найти все сообщения от fi.adm
 
Регистрация: 26.08.2013
Сообщений: 10

Botik21,
Дописал здесь и на странице была. Сначала библиотека, потом кликабельный элемент, потом обработчик.

Самое интересное, что если блок переписать вот так:
<a href="#dialog" name="modal"><span class="upload-button-label">Текст</span></a>

И сослаться на него 'a[name=modal]', все прекрасно работает. Как такое может быть?
Ответить с цитированием
  #6 (permalink)  
Старый 07.06.2016, 16:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

fi.adm,
вы что-то не договариваите
<meta charset="utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<body>
<div id="clickit">
<label class="pretty-upload">
<i class="mdi mdi-cloud-upload"></i>
<span class="upload-button-label">Текст</span>
</label>
</div>
<script>
$('body').on('click', 'div#clickit', function(e) {
 alert('щелк!');
});
</script>
</body>
Ответить с цитированием
  #7 (permalink)  
Старый 15.06.2016, 09:14
Аватар для fenix_63
Аспирант
Отправить личное сообщение для fenix_63 Посмотреть профиль Найти все сообщения от fenix_63
 
Регистрация: 05.06.2014
Сообщений: 92

Народ, а помогите мне тоже пожалуйста. Есть сайт: http://xn--80abl9cua.top/. Там есть кнопка вверху "Заказать звонок". Форма появляется, а вот по щелчку на крестик или на область, за пределами формы - не закрывается. Посмотрите пожалуйста, в чём причина?

callback.js:
// ========= (c)2015 :: html & css & jquery coding :: Polyakov - [url]http://polyakov.co.ua[/url]  =========

// =========================================================================  contact_form
$(function() {
	//Функция проверяет заполнено ли поле с телефоном
	function formValide() {
		var str = $('#contact_form input[name=tel]').val();
		str = jQuery.trim(str);
		if(str.length < 5){
			alert ('Введите телефон');
			return false;
		}
		return true;
	}

	//при нажатии на кнопку button нужной формы запускаем функцию обработки данных
	$('#contact_form .button').on('click', function() {
		if (formValide()) {
			//если форма прошла проверку, выводим блок с текстом ожидания
			$('#contact_form').before('<h3 id="contact_form_info">Оформление заявки. Подождите...</h3>');
			$('#contact_form').hide();
			//берем путь php обработчика
			order_url = $('#contact_form').attr('action');
			//посылаем асинхронный запрос на сервер и передаем все данные формы
			$.post(order_url,{
					name: $('#contact_form input[name=name]').val(),
					tel: $('#contact_form input[name=tel]').val(),
                    email: $('#contact_form input[name=email]').val(),
                    message: $('#contact_form textarea[name=message]').val(),
					send: "1"
				}, function(data) {
					//выводим возврашаемый сервером код html вместо содержимого формы
				$('#contact_form').html(data);
				$('#contact_form').show();
				$('#contact_form_info').remove();
			}, "html");
		}
		return false;
	});
});

// =========================================================================  go_order
$(function() {
	//фкнкция вызова формы обратной связи
	$('#callback').click(function(){
		//появление окна обратной связи
		$('#popup').fadeIn();
		//добавляем к окну иконку закрытия
        $('#popup').append('<a id="popup_close"></a>');
		//расчитываем высоту и ширину всплывающего окна что бы вывести окно прямо по центру экрана
        q_width = $('#popup').outerWidth()/-2;
        q_height = $('#popup').outerHeight()/-2;
        $('#popup').css({
            'margin-left': q_width,
            'margin-top': q_height
        });
		//выводим затемение страницы и делаем полупрозрачным
        $('body').append('<div id="fade"></div>');
        $('#fade').css({'filter' : 'alpha(opacity=40)'}).fadeIn();
		return false;
	});

	//функция закрытия окна
	$('#popup_close, #fade').on('click', function() {

		alert("Вы нажали крестик");
		//$('#fade').fadeOut(function() {
		//	$('#fade').remove();
        //    $('#popup_close').remove();
		//	$('#popup').fadeOut();
		//});

	});

});


index.html:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Займы на обучение</title>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="css/slider.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/callback.css">


<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="js/list_drop.js"></script>
<script type="text/javascript" src="js/callback.js"></script>

</head>

<body class="main">
...


Версия jQuery: 1.12.4
Ответить с цитированием
  #8 (permalink)  
Старый 15.06.2016, 09:15
Аватар для fenix_63
Аспирант
Отправить личное сообщение для fenix_63 Посмотреть профиль Найти все сообщения от fenix_63
 
Регистрация: 05.06.2014
Сообщений: 92

Делал по примеру как вот тут написано: http://polyakov.co.ua/page/forma-obr...azi-php-jquery
Ответить с цитированием
  #9 (permalink)  
Старый 15.06.2016, 14:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Либо делегируйте $('#popup_close, #fade').on('click' эту обработку body, либо устанавливайте этот обработчик указанным элементам при их создании.
Ответить с цитированием
  #10 (permalink)  
Старый 28.02.2018, 01:41
Аватар для lugantsev_web
Новичок на форуме
Отправить личное сообщение для lugantsev_web Посмотреть профиль Найти все сообщения от lugantsev_web
 
Регистрация: 28.02.2018
Сообщений: 1

Методом проб и ошибок, пришел к такому выводу:
// =========================================================================  contact_form
$(function() {
    //Функция проверяет заполнено ли поле с телефоном
    function formValide() {         
        var str = $('#contact_form input[name=contactFF]').val();
        str = jQuery.trim(str);                
        if(str.length < 5){                
            alert ('Введите телефон');          
            return false;
        }   
        return true;
    }
 
    //при нажатии на кнопку button нужной формы запускаем функцию обработки данных
    $('#contact_form .button').on('click', function() {
        if (formValide()) {
            //если форма прошла проверку, выводим блок с текстом ожидания
            $('#contact_form').before('<h3 id="contact_form_info">Обработка...</h3>');
            $('#contact_form').hide();
            //берем путь php обработчика
            order_url = $('#contact_form').attr('action');          
            //посылаем асинхронный запрос на сервер и передаем все данные формы
            $.post(order_url,{
                    nameFF: $('#contact_form input[name=nameFF]').val(),
                    contactFF: $('#contact_form input[name=contactFF]').val(),
                    send: "1"
                }, function(data) {
                    //выводим возврашаемый сервером код html вместо содержимого формы
                $('#contact_form').html(data);
                $('#contact_form').show();
                $('#contact_form_info').remove();
            }, "html");         
        }
        return false;
    });
});
 
// =========================================================================  go_order
$(function() {
    //фкнкция вызова формы обратной связи
    $('#callback').click(function(){
        //появление окна обратной связи
        $('#popup').fadeIn();
        //добавляем к окну иконку закрытия
        $('#popup').append('<a id="popup_close"></a>');
        //расчитываем высоту и ширину всплывающего окна что бы вывести окно прямо по центру экрана
        q_width = $('#popup').outerWidth()/-2;
        q_height = $('#popup').outerHeight()/-2;
        $('#popup').css({
            'margin-left': q_width,
            'margin-top': q_height
        });
        //выводим затемение страницы и делаем полупрозрачным
        $('body').append('<div id="fade"></div>');
        $('#fade').css({'filter' : 'alpha(opacity=40)'}).fadeIn();
		//функция закрытия окна
		$('#popup_close, #fade').click(function(){
			$('#fade').fadeOut(function() {
				$('#fade').remove();
				$('#popup_close').remove();
				$('#popup').fadeOut();
			});
		});

        return false;
    });
});


И не забудьте сбросить кеш (ctrl + f5) !!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
onclick не срабатывает в определенных районах кнопки Shitbox2 Общие вопросы Javascript 5 08.02.2014 19:27
on('click') срабатывает не для всего контента andrewks jQuery 9 23.08.2013 11:00
onclick срабатывает со 2 раза в ie djonA Общие вопросы Javascript 19 25.03.2013 01:07
Не всегда срабатывает onclick Almiur Events/DOM/Window 7 25.11.2011 11:39
onclick в IE не срабатывает по второму разу abstract Events/DOM/Window 1 23.08.2011 11:02