Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2013, 07:57
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

Почему не запускается функция?
Функция хранится в отдельном файле, причем если запускать ее из этого же файла все работает, но если запускать через ссылку, то не работает.
$(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> <!--Вот так не работает -->
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2013, 08:06
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

открываем фаербаг, консоль.. смотрим..
смотрим строчку, на которой вываливается ошибку и там пишут описание..
может вы подключайте этот файл позже, чем идет вызов этой функции,
может ссылка не рабочая
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2013, 08:13
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

skrudjmakdak,
Что самое главное любая другая функция не jQuery, то есть не вида:
$(function() {
function openWindow(content) {
//Не работает
}
});
function a(s) {
alert(s); //Работает
}
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2013, 08:21
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

<a href="javascript:openWindow('Регистрация');" class="registration" onclick="openWindow('Регистрация')">Регистрация</a> <!--Вот так не работает -->

и не будет работать, потому что openWindow не видно отсюда
пример
function a() {
  function b() {}
  b(); // это можно делать
}

b(); // это нельзя делать, идентификатор 'b' не привязан к функции внутри функции 'a'
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2013, 08:21
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

ммм. у меня работает))

<!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 все не нужное и скиньте сюда, посмотрим..
Ответить с цитированием
  #6 (permalink)  
Старый 25.06.2013, 08:25
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

skrudjmakdak,
Ваш метод пишет такую ошибку: enabling javascript debugger to support script, что делать?
Ответить с цитированием
  #7 (permalink)  
Старый 25.06.2013, 08:26
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

да да.. mta88 правильно говорит.. я чет не глянул на тег <a> и его внутренности.. он его и не будет видеть.. задайте этому тегу класс и назначьте обработчик по клику.. и главное в конце пишите return false;
Ответить с цитированием
  #8 (permalink)  
Старый 25.06.2013, 08:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,277

Сообщение от jeysmook
openWindow('asdasdasd'); // Вот так работает
тут функция видит ссылку
$(function() { тут мы как за каменной стеной никто нас неувидит
Сообщение от jeysmook
Вот так не работает
а со стороны ссылки функции невидно
Ответить с цитированием
  #9 (permalink)  
Старый 25.06.2013, 08:28
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

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>
Ответить с цитированием
  #10 (permalink)  
Старый 25.06.2013, 08:29
Кандидат Javascript-наук
Отправить личное сообщение для jeysmook Посмотреть профиль Найти все сообщения от jeysmook
 
Регистрация: 24.04.2012
Сообщений: 118

mta88,
Спасибо, я понял теперь все работает. Просто убрал $(function() {//оставил только функцию openWindow()});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает функция? Редактировать Isaac Общие вопросы Javascript 16 18.12.2012 14:22
Не запускается callback функция в Ext.Loader.Require DofD ExtJS 2 05.12.2012 18:49
Объясните, почему функция работает именно так. Имя Общие вопросы Javascript 36 04.09.2012 16:30
Функция не позволяет остаться элементу на странице. Почему? jsuse Общие вопросы Javascript 9 10.11.2011 08:49
Функция не возвращает false, почему? Vitaly jQuery 3 05.07.2009 15:05