Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   При клике не подключается скрипт (https://javascript.ru/forum/misc/69405-pri-klike-ne-podklyuchaetsya-skript.html)

SkyRewir 20.06.2017 11:38

При клике не подключается скрипт
 
Здравствуйте!
Есть вот такой скрипт
<script type='text/javascript'>
	var count=0;
	function inc(N) {
	    count = N;
	    alert (count);
	};
	</script>


<a href="#" onclick="inc(1)">Форма1</a>

Можно ли сделать так что при клике на Форма1, не срабатывал подключенный скрипт
<script src="libs/arcticmodal/config.js"></script>

Спасибо!

ksa 20.06.2017 11:41

Цитата:

Сообщение от SkyRewir
Можно ли сделать так что при клике на Форма1, не срабатывал подключенный скрипт

Можно... :yes:
Найди тот элемент и "обнули" обработчик onclick...

SkyRewir 20.06.2017 11:48

Цитата:

Сообщение от ksa (Сообщение 456000)
Можно... :yes:
Найди тот элемент и "обнули" обработчик onclick...

Это можно сделать через .unbind() ?

laimas 20.06.2017 12:32

Цитата:

Сообщение от SkyRewir
Это можно сделать через .unbind() ?

Нет.

SkyRewir 20.06.2017 13:40

Подскажите пожалуйста как можно обнулить обработчик?
Код:

function ink() {
            getWindow() {
                    false
            };
        };

<a href="#" onclick="ink()">Форма!</a>

//этот файл со скриптом <script src="libs/arcticmodal/config.js"></script>
//Содержание файла config.js
$(function() {
            if (!$.cookie('smartCookies')) {
              function getWindow(){
                $('.offer').arcticmodal({
                  closeOnOverlayClick: true,
                  closeOnEsc: true
                });
              $('#mark').addClass("good");
          };

Как я понял мне нужно при клике отключить функцию getWindow(), правильно?

laimas 20.06.2017 13:51

Все формируется сервером, так почему в коде сразу не прописать так <a href="#">Форма!</a> и удалить function ink() ...?

SkyRewir 20.06.2017 14:06

При нажатии на эту ссылку всплывает интегрированная форма crm, нужно чтобы при клике на <a href="#">Форма!</a>, не срабатывал подключенный обработчик <script src="libs/arcticmodal/config.js"></script>-это модальный диалог со своей формой, который подключен внизу index.html
Думал задавать переменную при клике на такие формы и через ветвления,как-нибудь прописать отработку, но мне подсказали что нужно "обнулить" обработчик <script src="libs/arcticmodal/config.js">

laimas 20.06.2017 14:09

Значит вопрос не так поставлен вами. Нужно не обнулять, а определить источники вызова. Если a href="#">Форма!</a> вызывает форму crm, то arcticmodal должна вызывать другая кнопка. Переназначить надо и исправить селектор.

SkyRewir 20.06.2017 14:18

arcticmodal-срабатывает автоматически при уходе курсора с активной области сайта.
При нажатии на эту ссылку <a href="#">Форма!</a> всплывает интегрированная форма crm, клиент считается "пойманным", нужно чтобы при клике на <a href="#">Форма!</a>, не срабатывал подключенный обработчик <script src="libs/arcticmodal/config.js"></script>-это всплывающий модальный диалог со спец предложением, так как клиент считается "пойманым" и ему не нужно видеть модальный диалог со спец предложением.

ksa 20.06.2017 14:24

Цитата:

Сообщение от SkyRewir
но мне подсказали что нужно "обнулить" обработчик
<script src="libs/arcticmodal/config.js">

Я тебе сказал
Цитата:

Сообщение от ksa
Найди тот элемент и "обнули" обработчик onclick...

Т.к. ты до этого писал
Цитата:

Сообщение от SkyRewir
Можно ли сделать так что при клике на Форма1, не срабатывал подключенный скрипт

Т.о. разговор шел о ссылке и ее обработчике onclick.

Т.ч. "обнуление" не скрипта, чт ты приводишь, а обработчика ссылки с текстом Форма1. И не более того...

laimas 20.06.2017 14:31

Цитата:

Сообщение от SkyRewir
arcticmodal-срабатывает автоматически при уходе курсора с активной области сайта.

И каким образом к этому событию имеет отношение <a href="#">Форма!</a>? Эта кнопка, что в адресной строке браузера расположена?

SkyRewir 20.06.2017 14:35

Я не могу понять как вызывается форма crm'ки по клику на
<a href="#">Форма1</a>

Изначально у неё нет onclick, onclick-это моя попытка через изменение переменной N отключить, обработчик <script src="libs/arcticmodal/config.js">

SkyRewir 20.06.2017 14:47

Цитата:

Сообщение от laimas
И каким образом к этому событию имеет отношение <a href="#">Форма!</a>? Эта кнопка, что в адресной строке браузера расположена?

Это не кнопка, а просто ссылка
<a href="#">Форма1</a>
расположена на сайте, когда клиент на неё нажимает, всплывает форма crm'ки. Когда эта форма crm'ки всплыла, клиент "пойман"
Если клиент "не пойман" нужно чтобы отработал скрипт <script src="libs/arcticmodal/config.js"></script>

laimas 20.06.2017 16:29

Ранее был вопрос - как не показывать arcticmodal если какая либо форма отправлялась. Вроде бы вопрос решен.

Теперь что тоже самое, но по наличию вызова формы crm?

Пойман, не не пойман, с этим в полицию. А тут конкретно ставьте задачу и категориями понятными. Лично я ничего не понял. )

SkyRewir 20.06.2017 18:58

Цитата:

Сообщение от laimas (Сообщение 456046)
Ранее был вопрос - как не показывать arcticmodal если какая либо форма отправлялась. Вроде бы вопрос решен.

Теперь что тоже самое, но по наличию вызова формы crm?

Пойман, не не пойман, с этим в полицию. А тут конкретно ставьте задачу и категориями понятными. Лично я ничего не понял. )

Честно я сам уже запутался)

Попробую начать сначала)
Есть index.html с таким содержанием
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<header>
		<a href="#">Заказать звонок</a> <!--Ссылка по нажатию на которую всплывает crm-форма-->
		<a href="#">Написать нам</a> <!--Ссылка по нажатию на которую всплывает crm-форма-->
	</header>
	<div class="content">
		Lorem ipsum dolor sit amet, consectetur adipisicing elit. Omnis similique deleniti repudiandae aliquam natus voluptatibus, odit obcaecati provident sequi dolorum molestiae quod modi corporis porro sit, ullam mollitia accusantium quos.
	</div>
	<footer>
		<a href="#">Заказать звонок</a> <!--Ссылка по нажатию на которую всплывает crm-форма-->
		<a href="#">Написать нам</a> <!--Ссылка по нажатию на которую всплывает crm-форма-->
	</footer>
	
	<div class="modalInner" style="display: none;"> <!-- Всплывающий модальный диалог-->
		<div class="offer">	<!--За него отвечает <script src="libs/arcticmodal/config.js"></script>-->
			<input type="text">
			<input type="text">
			<input type="text">
			<input type="text">
			<input type="text">
			<button type="submit" class="button_popup">Отправить</button>
		</div>
	</div>
	<script src="libs/arcticmodal/config.js"></script>
</body>
</html>

Если человек нажимает на одну из них
<a href="#">Заказать звонок</a>
<a href="#">Написать нам</a>

Модальный диалог не всплывал
<div class="modalInner" style="display: none;"> <!-- Всплывающий модальный диалог-->
		<div class="offer">	<!--За него отвечает <script src="libs/arcticmodal/config.js"></script>-->
			<input type="text">
			<input type="text">
			<input type="text">
			<input type="text">
			<input type="text">
			<button type="submit" class="button_popup">Отправить</button>
		</div>
	</div>

Надеюсь получилось объяснить)

laimas 21.06.2017 04:19

Цитата:

Сообщение от SkyRewir
Если человек нажимает на одну из них
<a href="#">Заказать звонок</a>
<a href="#">Написать нам</a>

Цитата:

Сообщение от SkyRewir
Надеюсь получилось объяснить

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

SkyRewir 21.06.2017 18:48

А если как-нибудь так?
Содержание index.html
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<header>
		<a href="#" class="feedbackOn">Заказать звонок</a> <!--Ссылка по нажатию на которую всплывает crm-форма-->
		<a href="#" class="sendmailOn">Написать нам</a> <!--Ссылка по нажатию на которую всплывает crm-форма-->
	</header>
	<div class="content">
		Lorem ipsum dolor sit amet, consectetur adipisicing elit. Omnis similique deleniti repudiandae aliquam natus voluptatibus, odit obcaecati provident sequi dolorum molestiae quod modi corporis porro sit, ullam mollitia accusantium quos.
	</div>
	<footer>
		<a href="#" class="feedbackOn">Заказать звонок</a> <!--Ссылка по нажатию на которую всплывает crm-форма-->
		<a href="#" class="sendmailOn">Написать нам</a> <!--Ссылка по нажатию на которую всплывает crm-форма-->
	</footer>
	
	<div class="modalInner" style="display: none;"> <!-- Всплывающий модальный диалог-->
		<div class="offer">	<!--За него отвечает <script src="libs/arcticmodal/config.js"></script>-->
			<input type="text">
			<input type="text">
			<input type="text">
			<input type="text">
			<input type="text">
			<button type="submit" class="button_popup">Отправить</button>
		</div>
	</div>
	<script src="libs/arcticmodal/config.js"></script>
</body>
</html>


Содержание config.js
$(document).ready(function() {
    
  var count = 0;
  $('.sendmailOn, .feedbackOn').on('click', function(event){
        count = 1;
        alert(count);
        return count;
      }
    );

  if (count > 0) { return false}
  else{
  (function($) {
    $(function() {

      if (!$.cookie('smartCookies') && count == 0) {
        function getWindow() {
          $('.offer').arcticmodal({
            closeOnOverlayClick: true,
            closeOnEsc: true
          });
          $('#mark').addClass("good");
        };

        $('html').mouseleave(function(e) {
          if ((e.clientY < 0) && !($("#mark").hasClass("good"))) {
            getWindow()
          }
        });

      }

      $.cookie('smartCookies', true, {
        expires: 31,
        path: '/'
      });

    })
  })(jQuery)
}
  $('.fff').submit(function() {
    if (!$(this).find('input:checked').length) {
      alert('Выберите один из вариантов');
      return false
    }
    $.cookie('smartCookies', true, {
      expires: 31,
      path: '/'
    });
  }).find('input:checkbox').change(function() {
    $(this).closest('.form-group').find('input:text').prop('required', this.checked).attr('placeholder', this.checked ? 'Напишите комментарий' : '')
  });
});

При нажатии на ссылкы переменной count присваиваетя 1
if (count > 0) {function getWindow(){ return false}}
else {getWindow()}

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

laimas 21.06.2017 18:55

Вы уже столько раз показывали ваш arcticmodal, что я даже не глядя могу сказать следующее - показ его определяется кукой, если ее нет - показывать, иначе нет.

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

Сколько можно об этом говорить?

SkyRewir 21.06.2017 20:03

$('.sendmailOn, .feedbackOn').on('click', function(event){
$.cookie('smartCookies', true, {
expires: 31,
path: '/'
});
}
Так?
);

laimas 21.06.2017 20:05

Так. Так как в коде такая установка неоднократно, можно прописать этот код

$.cookie('smartCookies', true, {
    expires: 31,
    path: '/'
});


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

SkyRewir 22.06.2017 06:10

Подскажите правильно ли я написал код, клики обрабатываются, но arcticModal все равно всплывает :(
function cookieses() {
    alert ('click');
    $.cookie('smartCookies', true, {
        expires: 31,
        path: '/'
      });
  }

$('.sendmailOn, .feedbackOn').on('click', function(event){
        cookieses();
      }
    );

$(document).ready(function() {  
  (function($) {
    $(function() {
      if (!$.cookie('smartCookies')) {
        function getWindow() {
          $('.offer').arcticmodal({
            closeOnOverlayClick: true,
            closeOnEsc: true
          });
          $('#mark').addClass("good");
        };

        $('html').mouseleave(function(e) {
          if ((e.clientY < 0) && !($("#mark").hasClass("good"))) {
            getWindow()
          }
        });

      }

      cookieses();

    })
  })(jQuery)

  $('.fff').submit(function() {
    if (!$(this).find('input:checked').length) {
      alert('Выберите один из вариантов');
      return false
    }
    cookieses();
  }).find('input:checkbox').change(function() {
    $(this).closest('.form-group').find('input:text').prop('required', this.checked).attr('placeholder', this.checked ? 'Напишите комментарий' : '')
  });
});


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