19

数か月前は問題なく動作していたこの古い jQuery UI スライダーがありましたが、現在は例外が発生しているようです: 未定義のメソッド 'addClass' を呼び出せません。スライダーに渡される値を確認しましたが、それらは通常の Javascript の日付です。

  $('#dateFilter').click(function() {
    return $('#sliderContainer').slideToggle(200);
  });

  $(function() {
    var endFiling, startFiling;
    startFiling = Date.parse($('#startFiling').val());
    endFiling = Date.parse($('#endFiling').val());
    return $('#filingDateSlider').slider({
      range: true,
      min: startFiling,
      max: endFiling,
      step: 86400000,
      values: [startFiling, endFiling],
      slide: function(event, ui) {
        var eD, end, sD, start;
        sD = new Date(ui.values[0]);
        start = dateFormat(sD);
        eD = new Date(ui.values[1]);
        end = dateFormat(eD);
        $('#filingStartDate').text(start);
        return $('#filingEndDate').text(end);
      }
        });

この新しいエラーが発生する特定の理由はありますか?

http://i.imgur.com/xC2E6.jpg

4

7 に答える 7

35

この質問を読み返している人は、CDN からプルしている場合は、最新の jQuery UI バージョンからプルしてみてください。私もこの問題を抱えていましたが、新しい jQuery UI バージョンを使用することで解決しました。

于 2012-09-24T20:56:18.277 に答える
22

「最小」、「最大」、「値」に整数を使用することで、このエラーを解決しました。たぶんあなたはヌル値を設定しています。

jQuerySliderの仕様には次のように書かれています。

  • 最大数デフォルト:100
  • 最小番号デフォルト:0
  • 値数値デフォルト:0

したがって、「値」は数値の配列です。

于 2012-08-06T06:49:59.573 に答える
10

まだこの問題が発生している場合は、追加する値 ( minmax、およびvaluesが文字列ではなくすべて数値であることを確認してください!

次のコードが失敗する問題を診断しようとしています:

t.slider({
  range : true,
  min   : t.attr('data-min'),
  max   : t.attr('data-max'),
  values: [t.attr('data-min'), t.attr('data-max')],
  step  : 1.00,
  slide : function (e, ui) {
    var
      v = (s == 'price') ? '£' + ui.values[0] + ' - £' + ui.values[1] : ui.values[0] + ' - ' + ui.values[1] + 'kg'
    $('#filter-' + s).html(v)
  },
  stop  : function () {
    Items.filter()
  }
})

STRING を返すように、jQuery UI のバージョン 1.10.1 の 12843 行t.attr()で Slider が設定に失敗していました。値ではなく、文字列を返していました((連結された最小値-パーセンテージ*最大値)valueMouseに似たもの)39.99549.2139.99549.21

それが誰かを助けることを願っています!

于 2013-03-09T16:56:27.933 に答える
3

最新バージョンでもこの問題が発生しました。解決策は簡単です: parseInt()を使用して動的な値をスライダーに渡します

jquery ui スライダーのセッターの例:

    $("#mySlider").slider("option",{min: parseInt(value.min), max:parseInt(value.max),value: parseInt(value.active)});
于 2014-02-02T08:43:38.387 に答える
1

別の可能性 - このエラーは、スライダーの最小値または最大値が欠落している場合に発生する可能性があります。startFiling または endFiling が日付に評価されない場合、スライダー コードは新しいハンドル位置を計算しようとすると失敗します。

于 2013-01-20T16:53:53.860 に答える
0

変更されていない jQuery-UI.min.js を使用して問題を解決しました。カスタム スクリプトを使用すると、エラーが発生しました。つまり、jQuery-UI-custom.js

于 2014-04-09T11:17:45.217 に答える