фон:объект литерала: не может получить доступ к атрибуту данных при связывании события
Я пытаюсь высушить мой код с помощью литерала объекта шаблона.
Объект:
Вот мой объект:
(function(){
var bookingForm = {
init: function(){
this.cacheDOM();
this.bindEvents();
},
cacheDOM: function(){
this.$nextStep = $('.btn-next-step');
},
bindEvents: function(){
this.$nextStep.on('click', this.nextStep.bind(this));
},
nextStep: function(value){
alert($(value).attr('data'));
},
prevStep: function(){
},
}
bookingForm.init();
})();
И моя кнопка, которая должна вызвать nextStep
функцию
<button class="btn btn-success btn-next-step" data="2">
Next Step
<i class="fa fa-arrow-right"></i>
</button>
Так что я пытаюсь получить доступ к атрибут данных кнопки, поэтому, когда я нажимаю на него, я должен получить предупреждение «2».
Я пробовал несколько способов ... этот текущий код просто предупреждает «undefined».
Вопрос
Как передать приписывать мои данные через к связанной функции?
Параметр, передаваемый обработчику событий, является объектом события. Ваш код, похоже, ожидает, что параметр 'value' будет ссылкой на элемент DOM, что неверно. – Pointy
@ Положительные благодарности за помощь - не совсем понимаю ... Наверное, я назвал вещи в замешательстве. $ nextStep - это класс, который я кэшировал, а nextStep - это метод объекта ... это правильно? –
Да, я пропустил эту функцию, которая инициализирует свойство. – Pointy