2014-12-11 3 views
0

슬라이더를 사용하여 값을 변경할 때마다 알림을 표시하는 경우 첫 번째 변경은 알림을 하나 생성 한 다음 하나 대신 알림을 여러 개 만듭니다. 어떻게 내가 이걸 막을 수 있니? 아래 코드를 포함 해 주신 것에 대해 감사드립니다.NoUiSlider 이벤트가 여러 번 발생하는 경우

슬라이더를 움직일 때마다이 이벤트가 발생합니다.

$("#single-slider").on({ 

     change: function() { 
      $("#single-slider").Link('lower').to(Notification); 
     } 
    }); 

아래와 같이 메시지를 표시하고 값을 전달할 수있는 알림 기능에 바인딩되어 있습니다.

function Notification(value, type) { 
console.log(value); 
var tFormat = value; 
$.jGrowl(' Refresh rate for ' + type + ' changed to ' + tFormat, { life: 10000, header: '<i class="fa fa-comment-o fa-2x"></i>' }); 

} 그러나 대신 하나 개의 통지를 만드는 그것은 복수의 통지를 만드는 것입니다.

+0

아마도 다른 이벤트에서 변경 이벤트를 바인딩하고 있습니다. 사용중인 슬라이더에 'change' 이벤트가 내장되어 있지 않습니까? – adeneo

+0

변경 : 기능은 슬라이더 변경 이벤트입니다. 그래서 왜 여러 번 발사했는지 이해할 수 없었습니다. –

+0

위의 코드에는 아무런 문제가 없습니다. 여기 데모가 있습니다 : http://jsfiddle.net/2py6oz04/ 리스너를 두 번 이상 추가한다고 가정합니다. – slicedtoad

답변

0

게시 한 코드는 괜찮습니다 (http://jsfiddle.net/2py6oz04/). 아마도 리스너를 두 번 이상 추가하고있을 것입니다.

$('#single-slider').off("change"); 

를 사용해보십시오 여기에서 볼 수 있듯이

$("#single-slider").on({ 
    change: function() { 
     $("#single-slider").Link('lower').to(Notification); 
    } 
}); 

하기 전에 : http://jsfiddle.net/2py6oz04/1/ 내가 리스너를 추가, 그것을 벗고 다시 추가. off 행을 삭제하면 두 개의 알림이 표시됩니다.

또한 추가 된 횟수를 기록하려면 $("#single-slider").on 앞에 console.log()를 추가하십시오. 이상적으로는 기존 수신기를 끄는 것뿐만 아니라 근본 문제를 해결해야합니다.

+0

문제가 해결되었습니다. –

관련 문제