2

multiselect.js jQuery ライブラリの記載されている互換性の最小レベルは、 jQuery 1.8+との互換性です。

コードベースのどの部分がこの依存関係を引き起こしているのか、スクリプトの下位互換性を高めるために何ができるのか疑問に思っています。

たとえば、1.3.2で試してみると、「each」関数内から呼び出された「split」関数でスクリプトが中断します。

Uncaught TypeError: Cannot call method 'split' of undefined jquery-1.3.2.min.js:12
o.fn.extend.data     jquery-1.3.2.min.js:12
(anonymous function) jquery.multi-select.js:481
o.extend.each        jquery-1.3.2.min.js:12
o.fn.o.each          jquery-1.3.2.min.js:12
$.fn.multiSelect     jquery.multi-select.js:478

コードのこのセクションが破損の原因です。

return this.each(function () {  // this line
  var $this = $(this),
      data = $this.data('multiselect'),
      options = $.extend({}, $.fn.multiSelect.defaults, $this.data(), typeof option === 'object' && option);

  if (!data){ $this.data('multiselect', (data = new MultiSelect(this, options))); }

  if (typeof option === 'string'){
    data[option](args[1]);
  } else {
    data.init();
  }
});
4

0 に答える 0