배경 : 나는 객체 리터럴 패턴을 사용하여 내 코드를 건조하려고: 데이터 속성에 액세스 할 수있는 이벤트를 바인딩 할 때
.
가 목적 : 여기에
내 객체입니다 예정이다
(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'의 경고를 받아야합니다.
여러 가지 방법을 시도했습니다 ... 현재 코드는 '정의되지 않음'을 경고합니다.
질문
는 어떻게 데이터 바인딩 기능을 통해 속성을 통과합니까?
이벤트 처리기에 전달 된 매개 변수는 이벤트 개체입니다. 귀하의 코드는'value' 매개 변수가 DOM 요소 참조가 될 것으로 예상하는 것으로 보이며 이는 틀린 것입니다. – Pointy
도움을 주신 @ 주셔서 감사합니다. 이해가되지 않습니다 ... 나는 물건들을 혼란스러운 방식으로 명명 한 것 같습니다. $ nextStep은 내가 캐시 한 클래스이고 nextStep은 객체의 메소드입니다 ... 맞습니까? –
예 죄송합니다. 속성을 초기화하는 함수가 없습니다. – Pointy