не работает 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, время: 16:48. |