Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.04.2013, 22:57
Профессор
Отправить личное сообщение для torsar Посмотреть профиль Найти все сообщения от torsar
 
Регистрация: 06.01.2012
Сообщений: 409

не работает backbone.js(Router)
index.html :
<!DOCTYPE html>
<html>
	<head>
		<title>Hello, Backbone</title>
		<script src="js/underscore.js"></script>
		<script src="js/backbone.js"></script>
		<script src="js/jquery-1.9.1.js"></script>
		<script src="js/index.js"></script>
		<link type="text/css" rel="stylesheet" href="css/style.css">
	</head>
	<body>
		<div id="menu"> <!-- Блок меню -->
			<ul>
				<li><a href="#!/">Start</a></li>
				<li><a href="#!/success">Success</a></li>
				<li><a href="#!/error">Error</a></li>
			</ul>
		</div>
		<div id="start" class="block">
			<div class="userplace">
				<label for="username">Имя пользователя: </label>
				<input type="text" id="username" />
			</div>
			<div class="buttonplace">
				<input type="button" value="Проверить" />
			</div>
		</div>
		<div id="error" class="block">
			Ошибка такой пользователь не найден.
		</div>
		<div id="success" class="block">
			Пользователь найден.
		</div>
	</body>
</html>


index.js :
var Controller = Backbone.Router.extend({
    routes: {
        "": "start", // Пустой hash-тэг
        "!/": "start", // Начальная страница
        "!/success": "success", // Блок удачи
        "!/error": "error" // Блок ошибки
    },

    start: function () {
        $(".block").hide(); // Прячем все блоки
        $("#start").show(); // Показываем нужный
    },

    success: function () {
		alert("PP");
        $(".block").hide();
        $("#success").show();
    },

    error: function () {
        $(".block").hide();
        $("#error").show();
    }
});

var controller = new Controller(); // Создаём контроллер


//Backbone.history.start();  // Запускаем HTML5 History push


Я так понимаю, должны вызываться события на роутере при клике на ссылках:
<div id="menu"> <!-- Блок меню -->
			<ul>
				<li><a href="#!/">Start</a></li>
				<li><a href="#!/success">Success</a></li>
				<li><a href="#!/error">Error</a></li>
			</ul>

Не работает
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2013, 01:19
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Так раскоментируй Backbone.history.start()
Ответить с цитированием
  #3 (permalink)  
Старый 23.04.2013, 02:37
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Ложь! Он и без jq может обойтись, единственная зависимость - underscore. Однако, если на странице найден jQuery, то объекты будут расширены некоторыми дополнительными полями.
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2013, 10:08
Профессор
Отправить личное сообщение для torsar Посмотреть профиль Найти все сообщения от torsar
 
Регистрация: 06.01.2012
Сообщений: 409

Chrome в консоли віводит такую бадягу :
Цитата:
Error in event handler for 'undefined': Cannot read property 'combi' of undefined TypeError: Cannot read property 'combi' of undefined
at Object.jQuery.fn.bind (chrome-extension://libokbfffpaopdjmeofdfpmlanaenaje/js/lib/jquery.hotkeys-0.7.9.min.js:6:8)
at chrome-extension://libokbfffpaopdjmeofdfpmlanaenaje/js/activate_hotkey.js:33:17
at miscellaneous_bindings:288:9
at chrome.Event.dispatchToListener (event_bindings:390:21)
at chrome.Event.dispatch_ (event_bindings:376:27)
at chrome.Event.dispatch (event_bindings:396:17)
at Object.chromeHidden.Port.dispatchOnMessage (miscellaneous_bindings:254:22) event_bindings:380
А если разкоммментить:
Backbone.history.start()

Вот такую :
Uncaught TypeError: Property '$' of object #<Object> is not a function backbone.js:1390
_.extend.start backbone.js:1390
(anonymous function) index.js:29
Error in event handler for 'undefined': Cannot read property 'combi' of undefined TypeError: Cannot read property 'combi' of undefined
    at Object.jQuery.fn.bind (chrome-extension://libokbfffpaopdjmeofdfpmlanaenaje/js/lib/jquery.hotkeys-0.7.9.min.js:6:8)
    at chrome-extension://libokbfffpaopdjmeofdfpmlanaenaje/js/activate_hotkey.js:33:17
    at miscellaneous_bindings:288:9
    at chrome.Event.dispatchToListener (event_bindings:390:21)
    at chrome.Event.dispatch_ (event_bindings:376:27)
    at chrome.Event.dispatch (event_bindings:396:17)
    at Object.chromeHidden.Port.dispatchOnMessage (miscellaneous_bindings:254:22) event_bindings:380
Ответить с цитированием
  #5 (permalink)  
Старый 23.04.2013, 10:12
Профессор
Отправить личное сообщение для torsar Посмотреть профиль Найти все сообщения от torsar
 
Регистрация: 06.01.2012
Сообщений: 409

Opera в консоли выводит такое:
Цитата:
Uncaught exception: TypeError: 'Backbone.$' is not a function
Error thrown at line 1390, column 8 in <anonymous function: start>(options) in http://study.loc:8080/js/backbone/hello/js/backbone.js:
Backbone.$(window).on('hashchange', this.checkUrl);
called from line 29, column 0 in http://study.loc:8080/js/backbone/hello/js/index.js:
Backbone.history.start();
Ответить с цитированием
  #6 (permalink)  
Старый 23.04.2013, 12:56
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Сделай пример, который можно посмотреть. Гадать, что у тебя не так очень непросто.
Ответить с цитированием
  #7 (permalink)  
Старый 23.04.2013, 21:29
Профессор
Отправить личное сообщение для torsar Посмотреть профиль Найти все сообщения от torsar
 
Регистрация: 06.01.2012
Сообщений: 409

пример во вложении
Вложения:
Тип файла: zip hello.zip (108.6 Кб, 1 просмотров)
Ответить с цитированием
  #8 (permalink)  
Старый 23.04.2013, 21:57
Профессор
Отправить личное сообщение для torsar Посмотреть профиль Найти все сообщения от torsar
 
Регистрация: 06.01.2012
Сообщений: 409

урра
перместил подключение jquery.js
на первое место и заработало
почему так?
Ответить с цитированием
  #9 (permalink)  
Старый 23.04.2013, 22:55
Профессор
Отправить личное сообщение для torsar Посмотреть профиль Найти все сообщения от torsar
 
Регистрация: 06.01.2012
Сообщений: 409

var Start = Backbone.View.extend({
    el: $("#start"), // DOM элемент widget'а
    events: {
        "click #btn": "check" // Обработчик клика на кнопке "Проверить"
    },
    check: function () {
		alert("");
        
    }
});

var start = new Start();

не работает событие представления "check"
Вложения:
Тип файла: zip hello.zip (108.7 Кб, 1 просмотров)
Ответить с цитированием
  #10 (permalink)  
Старый 24.04.2013, 22:33
Профессор
Отправить личное сообщение для torsar Посмотреть профиль Найти все сообщения от torsar
 
Регистрация: 06.01.2012
Сообщений: 409

пачему?????????????????????????????????????? ???

http://jsbin.com/apezek/3/
http://jsbin.com/apezek/3/edit

здесь работает (клик по кнопке отрабатывается)
а у меня на компе ни в одном браузере не работает?????????????????????????????????? ??????????????????
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена значения в store страно работает I3ev ExtJS 0 09.12.2012 14:22
Скрипт не работает при заходе на данную страницу, но работает при рефреше страницы foker jQuery 0 26.11.2012 12:27
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59