2016-10-14 2 views
0

numscroller jqueryプラグインをプログラムに実装しています。しかし、3桁ごとにグループ化するためにコンマやスペースを追加するのに問題があります。ここでカンマまたは空白を3桁ごとにグループ化する方法

は私のコードです:

(function($){ 
$(window).on("load",function(){ 
    $(document).scrollzipInit(); 
    $(document).rollerInit(); 
}); 
$(window).on("load scroll resize", function(){ 
    $('.numscroller').scrollzip({ 
     showFunction : function() { 
           numberRoller($(this).attr('data-slno')); 
          }, 
     wholeVisible :  false, 
    }); 
}); 
$.fn.scrollzipInit=function(){ 
    $('body').prepend("<div style='position:fixed;top:0px;left:0px;width:0;height:0;' id='scrollzipPoint'></div>"); 
}; 
$.fn.rollerInit=function(){ 
    var i=0; 
    $('.numscroller').each(function() { 
     i++; 
     $(this).attr('data-slno',i); 
     $(this).addClass("roller-title-number-"+i); 
    });   
}; 
$.fn.scrollzip = function(options){ 
    var settings = $.extend({ 
     showFunction : null, 
     hideFunction : null, 
     showShift  : 0, 
     wholeVisible : false, 
     hideShift  : 0, 
    }, options); 
    return this.each(function(i,obj){ 
     $(this).addClass('scrollzip'); 
     if ($.isFunction(settings.showFunction)){ 
      if(
       !$(this).hasClass('isShown')&& 
       ($(window).outerHeight()+$('#scrollzipPoint').offset().top-settings.showShift)>($(this).offset().top+((settings.wholeVisible)?$(this).outerHeight():0))&& 
       ($('#scrollzipPoint').offset().top+((settings.wholeVisible)?$(this).outerHeight():0))<($(this).outerHeight()+$(this).offset().top-settings.showShift) 
      ){ 
       $(this).addClass('isShown'); 
       settings.showFunction.call(this); 
      } 
     } 
     if ($.isFunction(settings.hideFunction)){ 
      if(
       $(this).hasClass('isShown')&& 
       (($(window).outerHeight()+$('#scrollzipPoint').offset().top-settings.hideShift)<($(this).offset().top+((settings.wholeVisible)?$(this).outerHeight():0))|| 
       ($('#scrollzipPoint').offset().top+((settings.wholeVisible)?$(this).outerHeight():0))>($(this).outerHeight()+$(this).offset().top-settings.hideShift)) 
      ){ 
       $(this).removeClass('isShown'); 
       settings.hideFunction.call(this); 
      } 
     } 
     return this; 
    }); 
}; 
function numberRoller(slno){ 
     var min=$('.roller-title-number-'+slno).attr('data-min'); 
     var max=$('.roller-title-number-'+slno).attr('data-max'); 
     var timediff=$('.roller-title-number-'+slno).attr('data-delay'); 
     var increment=$('.roller-title-number-'+slno).attr('data-increment'); 
     var numdiff=max-min; 
     var timeout=(timediff*1000)/numdiff; 
     numberRoll(slno,min,max,increment,timeout); 

} 
function numberRoll(slno,min,max,increment,timeout){//alert(slno+"="+min+"="+max+"="+increment+"="+timeout); 
    if(min<=max){ 
     $('.roller-title-number-'+slno).html(min); 
     min=parseInt(min)+parseInt(increment); 
     setTimeout(function(){numberRoll(eval(slno),eval(min),eval(max),eval(increment),eval(timeout))},timeout); 
    }else{ 
     $('.roller-title-number-'+slno).html(max); 
    } 
} 
})(jQuery); 

誰かが解決策を提供することができればそれは素晴らしいことです。前もって感謝します。

+0

へのリンクの答えが受け入れとしてそれをマークしてください:)答えは、助けて私に知らせて、我々はそれを解決しようとすることができなかった場合は、助けた場合は、 –

+0

こんにちはシャー​​ルバールを@kbunarjoありがとうさらに! – Frits

答えて

0

あなたの関数全体を篩い分けすることなく、カンマを追加したり追加したりすることなく、最後の文字列を追加する関数を実行するだけで済みます。

あなたはすべて3つの文字の後に文字列を分割します次の関数を使用することができます(数字を区切るために使用するためにあなたが望む任意の他に", "からoutput.join(", ");で区切り文字を変更することができます

var result = add_comma_grads(12345678); 

function add_comma_grads(string){ 
    var output = string.split(/(?=(?:...)*$)/); 
    return output.join(", "); 
} 

//this will output 12, 345, 678 

をごすなわち必要ならスペースを削除できます)。

はここworking fiddle

+0

@Fritsありがとうございます。 –

+0

いつでも@SarvarErgashev - 答えが助けられたら、それを受け入れたものとしてマークしてください:) – Frits

+0

あなたの答えは@Fritsありがとうございます。しかし、それは私のために働いていない。私の機能と互換性のある別の解決策を教えてください。前もって感謝します。 –

関連する問題