0

내 레일 앱에서 2 개의 커피 스크립트 파일을 작성하는 데 window.onscroll fn이 필요합니다.두 개의 커피 파일이 레일에서 서로 간섭합니다

한 번에 하나씩 구현하면 둘 다 잘 작동하지만 둘 다 포함하면 스크립트가 작동하지 않습니다.

다음은 첫 번째 스크립트

rightBarControl = -> 
    windowHeight = $(window).height() 
    scrollHeight = $(window).scrollTop() 
    rightBarWidth = $('#index_top_confession_div').width() 
    #20% of .main width 
    rightBarHeight = $('#index_top_confession_div').outerHeight() 
    rightBarOffset = $('#index_confessions').offset().left + $('#index_confessions').outerWidth() 
    rightBarTop = 75 
    #30 because .head is 30px high 
    if windowHeight - 75 < rightBarHeight 
    #Again including 30 because of .head 
    rightBarTop = windowHeight - rightBarHeight 
    if windowHeight + scrollHeight - 75 >= rightBarHeight 
    $('#index_top_confession_div').css 
     position: 'fixed' 
     left: rightBarOffset 
     top: rightBarTop 
    else 
    $('#index_top_confession_div').css 
     position: 'static' 
     left: rightBarOffset 
     top: rightBarTop 
    return 

$('#search').addClass 'form-control' 
$(window).scroll rightBarControl 
#Run control on window scroll 
$(window).resize rightBarControl 

두 번째 스크립트 파일 ..

$(document).ready -> 
    if $('.pagination').length 
    $(window).scroll -> 
     console.log('hey'); 
     url = undefined 
     url = $('.pagination .next_page').attr('href') 
     if url and $(window).scrollTop() > $(document).height() - $(window).height() - 200 
     $('.pagination').html '<img src = \'/uploads/loader/loader.gif\' alt=\'loading...\'/>' 
     return $.getScript(url) 
     return 
    return $(window).scroll() 
    return 

답변

0

자산 파이프 라인은 모든 CSS와 자바 스크립트 파일을 하나 개의 큰 파일로 결합이다.

두 coffeescript 파일에 $(window).scroll()이 있으면 두 기능이 모두 실행됩니다.

여기에는 몇 가지 방법이 있습니다. 하나는 컨트롤러 이름이 class 또는 idlayout.html.erb을 편집하는 것입니다. 그럼 당신은 올바른 페이지의 올바른 JS를 실행하기 위해 커피 스크립트에서 확인할 수 있습니다 것은

또 다른 방법은 당신이 항상 id 또는 class에 의한 요소를 대상으로 확인하는 것입니다, body 또는 window

같은 웹 사이트 넓은 타겟을 사용하여 피할 수 없다
+0

음 .. 포인트는 모두 같은 페이지에서 실행됩니다 .. 하나는 오른쪽 바를 제어하고 하나는 무한 스크롤을 제어합니다. –