не работает 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> Не работает |
Так раскоментируй Backbone.history.start()
|
Ложь! Он и без jq может обойтись, единственная зависимость - underscore. Однако, если на странице найден jQuery, то объекты будут расширены некоторыми дополнительными полями.
|
Chrome в консоли віводит такую бадягу :
Цитата:
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
|
Opera в консоли выводит такое:
Цитата:
|
Сделай пример, который можно посмотреть. Гадать, что у тебя не так очень непросто.
|
Вложений: 1
пример во вложении
|
урра
перместил подключение jquery.js на первое место и заработало почему так? |
Вложений: 1
var Start = Backbone.View.extend({
el: $("#start"), // DOM элемент widget'а
events: {
"click #btn": "check" // Обработчик клика на кнопке "Проверить"
},
check: function () {
alert("");
}
});
var start = new Start();
не работает событие представления "check" |
пачему?????????????????????????????????????? ???
http://jsbin.com/apezek/3/ http://jsbin.com/apezek/3/edit здесь работает (клик по кнопке отрабатывается) а у меня на компе ни в одном браузере не работает?????????????????????????????????? ?????????????????? |
| Часовой пояс GMT +3, время: 00:40. |