«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2017/04/07 11:52:09  №968669 1
Есть конструкция вида (function($){…})(jQuery). Когда она находится внутри <script></script> прямо под тем html-кодом, который её вызывает, всё ок. Но стоит перенести функцию в отдельный js-файл, как работать перестаёт, просто не реагирует на нажатие кнопок, как будто его и нет.
Весь код: https://jsfiddle.net/ex16zd7h/

>«(function($){…})(jQuery) » создает анонимную функцию, и тут же
>вызывает ее, передавая в качестве параметра объект jQuery, таким
>образом внутри анонимной функции мы можем использовать алиас $
>не боясь за конфликты с другими библиотеками — так как теперь $
>находится лишь в области видимости нашей функции, и мы имеем
>полный контроль над ней.

Как её правильно вынести в отдельный файл?
Ответы: >>968671 >>968735 >>971930
Аноним 2017/04/07 11:58:36  №968671 2
Ответы: >>968672
Аноним 2017/04/07 12:03:02  №968672 3
>>968671
Не понял тебя. По ссылке правила для $( document ).ready(), но у меня скрипт должен срабатывать не после загрузки страницы, а при клике по ссылке. JS-файл загружается в head самым последним. А код, который хочу перенести из html-файла, в js-файле вставляю тоже в самый низ.
Ответы: >>968673
Аноним 2017/04/07 12:11:24  №968673 4
>>968672
Браузер выполняет твой html (именно html, не js) сверху вниз. Когда ты подрубаешь свой js файл через тег <script> у тебя в доме находятся только те теги которые выше него в html файле. В твоём коде за авторством Тимура эвент вешается на ссылку через $('.submit.button').click но видимо в этот момент дом пуст, там еще нет этой ссылки. Твои варианты:
1) дерунть код в конце html файла руками через чет типа <script>init();</script>
2) дернуть код через $(document).ready
3) использовать $().live или $().on или как он блять сейчас в этой параше называется чтобы вешать эвенты на те элементы, которых еще нет в доме.
Ответы: >>968674 >>968680 >>971930
Аноним 2017/04/07 12:14:33  №968674 5
>>968673
>2) дернуть код через $(document).ready
То есть, обернуть js-код в эту обёртку? Спасибо, попробую.