2012-06-26 5 views
1

У меня есть следующий вид:нажмите событие не стрелять в светлячок - магистральная

App.HouseListElemView = Backbone.View.extend({ 
    tagName: 'li', 
    events: { 
     'click': function() { 
      App.detailsRouter.navigate('details/' + this.model.id, true);  
     }, 
     'click .btn-compare': 'compare', 
     'click .btn-compare > input': 'toggleCompare', 
    }, 
    // more stuff here... 
}); 

Первое событие щелчка в списке срабатывает в обоих сафари и хром, но не в Firefox. Я использую firefox 11.0.

Я объявляю свои события некорректно?

+0

Как выглядит ваш HTML-код? Эти события прекрасны в Firefox: http://jsfiddle.net/ambiguous/vKHdc/ –

+0

Это интересно .. Это действительно работает в firefox. Тогда я не знаю, что может быть неправильным. Мой html - это 'ul' с различными элементами списка внутри. – AlexBrand

+0

Отрегулируйте скрипт в соответствии с используемым вами HTML-кодом или включите ваш шаблон и« render »в вопрос. Мое первое предположение заключается в том, что вы генерируете недействительный HTML, а Firefox исправляет его способами, которые могут испортить ваше делегирование событий. –

ответ

0

Да, вы делаете это неправильно. Проделайте ниже, и он должен работать

App.HouseListElemView = Backbone.View.extend({ 
    tagName: 'li', 
    events: { 
     'click': 'navigateTo', 
     'click .btn-compare': 'compare', 
     'click .btn-compare > input': 'toggleCompare', 
    }, 
    navigateTo:function() { 
      App.detailsRouter.navigate('details/' + this.model.id, true); 
     }, 
    // more stuff here... 
}); 

и по тому, как событие щелчка будет связан с корнем зрения, которая el. Таким образом, укажите цель щелчка с помощью выбранного значения 'click #navigator':'navigateTo'

+0

Согласно документам: «События записываются в формате {« селектор событий »:« обратный вызов »}. Обратный вызов может быть либо именем метода на представлении, либо телом прямой функции ». –

+1

Я хочу, чтобы событие было привязано к эл. Однако я изменил 'click' на' click li' и начал работать. – AlexBrand

+0

Использование анонимных функций в 'events' отлично с новыми Backbones. –

Смежные вопросы