Почему не запускается функция?
Функция хранится в отдельном файле, причем если запускать ее из этого же файла все работает, но если запускать через ссылку, то не работает.
$(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, время: 19:09. |