Почему не запускается функция?
Функция хранится в отдельном файле, причем если запускать ее из этого же файла все работает, но если запускать через ссылку, то не работает.
$(function() { function openWindow(content) { getWindow = function(content) { var containerWindow = '<div class="container-window"><div class="window">'+ '<div class="control-panel-window"><a href="" class="close-window">Закрыть</a></div>'+ '<div class="content-window">'+content+'</div>'+ '</div></div>'; return containerWindow; } alert(getWindow); $('body').append(getWindow(content)); } $('.registration').click(function() { openWindow('asdasdasd'); // Вот так работает }); }); <a href="javascript:openWindow('Регистрация');" class="registration" onclick="openWindow('Регистрация')">Регистрация</a> <!--Вот так не работает --> |
открываем фаербаг, консоль.. смотрим..
смотрим строчку, на которой вываливается ошибку и там пишут описание.. может вы подключайте этот файл позже, чем идет вызов этой функции, может ссылка не рабочая |
skrudjmakdak,
Что самое главное любая другая функция не jQuery, то есть не вида: $(function() { function openWindow(content) { //Не работает } }); function a(s) { alert(s); //Работает } |
<a href="javascript:openWindow('Регистрация');" class="registration" onclick="openWindow('Регистрация')">Регистрация</a> <!--Вот так не работает --> и не будет работать, потому что openWindow не видно отсюда пример function a() { function b() {} b(); // это можно делать } b(); // это нельзя делать, идентификатор 'b' не привязан к функции внутри функции 'a' |
ммм. у меня работает))
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="jquery-1.10.1.min.js"></script> <script type="text/javascript"> function two() { console.log(2); } $(document).ready(function(){ function three() { console.log(3); } $('.one').click(function() { two(); three(); }); }); </script> </head> <body> <div class="one">123123</div> </body> </html> вырежете из свое html все не нужное и скиньте сюда, посмотрим.. |
skrudjmakdak,
Ваш метод пишет такую ошибку: enabling javascript debugger to support script, что делать? |
да да.. mta88 правильно говорит.. я чет не глянул на тег <a> и его внутренности.. он его и не будет видеть.. задайте этому тегу класс и назначьте обработчик по клику.. и главное в конце пишите return false;
|
Цитата:
$(function() { тут мы как за каменной стеной никто нас неувидит Цитата:
|
jquery - это функция. а вы описывайте внутри этой свою функцию.. и разумеется из вне ее видно не будет.
вот так делайте: <!DOCTYPE html> <html> <head> <script type="text/javascript" src="jquery-1.10.1.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ function three() { console.log(3); } $('.one').click(function() { three(); return false; }); }); </script> </head> <body> <a href="http://google.com" class="one">123123</a> </body> </html> |
mta88,
Спасибо, я понял теперь все работает. Просто убрал $(function() {//оставил только функцию openWindow()}); |
Часовой пояс GMT +3, время: 17:24. |