내 코드는 문서의 끝 부분에 지금 그것은 작동합니다. 도움을 청합니다.
질문
내가 클릭 함수를 호출 할 ...하지만 난 내 링크 사이트를 다시로드를 클릭하면.
여기 내 코드입니다 :
(function(window, undefined) {
var gn = (function(){
var sitelength = $(window).width(),
$next = $('.next'),
$start = $('.start'),
init = function(){
_scrollto();
_checkmenu();
},
_scrollto = function(){
$next.on('click', function(event) {
$('html,body').animate({scrollLeft: $("body").offset().left+200},1500);
return false;
});
$start.on('click', function(event) {
$('html,body').animate({scrollLeft: $("body").offset().left+0},1500);
return false;
});
},
_checkmenu = function(){
$(window).scroll(function(e){
if($(this).scrollLeft()>100 && (!$('#side').hasClass('ac'))){
$('#side').addClass('ac');
$('#side').animate({ left : -230 }, 'slow');
$('#sitenav').animate({ left : 0 }, 'slow');
}
if($(this).scrollLeft()<100 && $('#side').hasClass('ac')){
$('#side').removeClass('ac');
$('#side').animate({ left : 20 }, 'slow');
$('#sitenav').animate({ left : -50 }, 'slow');
}
});
}
return { init : init };
})();
gn.init();
})(window);
하지만 난에 전체 클릭의 일을 제외하면 "$ (문서) .ready (함수())"그것을 잘 작동합니다.
$(document).ready(function(){
var $next = $('.next'),
$start = $('.start');
$next.on('click', function(event) {
$('html,body').animate({scrollLeft: $("body").offset().left+200},1500);
return false;
});
$start.on('click', function(event) {
$('html,body').animate({scrollLeft: $("body").offset().left+0},1500);
return false;
});
});
누군가가 왜 그 문제를 해결할 수 있습니까?
클릭 기능의 첫 번째 버전은 DOM이 준비되기 전에 click 이벤트를 바인딩하므로 요소가 아직 존재하지 않습니다. DOM 준비 함수 안에서'gn.init()'함수를 실행 해보십시오. – adeneo
내 코드는 이제 DOM (문서 끝) 아래에 있으며 지금은 작동합니다 :) 그래서 DOM이로드되고 요소가 존재합니다. thx – gn90at