2013-11-30 2 views
3

Я пытаюсь использовать это: http://fgnass.github.io/spin.js/, и он отлично работает, когда я просто использую его через js, которые они задают. Однако, когда я хочу использовать jquery plug-in, он не работает. Разве мне не нужно делать только $('#elementID').spin(), и он должен начать использовать счетчик на этом элементе?spin.js jquery не работает

EDIT:

В JQuery плагин это говорит, что это:

$('#el').spin(); // Creates a default Spinner using the text color of #el.

Это то, что я хочу использовать. Регулярный способ js, который люди ответили ниже, работает, но я не знаю, почему этот способ jquery не работает, как они указывают.

+0

Вы имели в виду ссылку на него извне (ссылка на сайт, на котором размещен файл spin.js), VS, имеющий скрипт, связанный локально? – Pippin

+0

О нет. У меня есть файл jquery.spin.js и файлы spin.js локально, и когда я смотрю на свой источник страницы, я вижу, что он их находит. Просто, что jquery способ начать spinner не работает. Если я делаю это чистым способом js, как они указывают, он работает – user1529956

+0

Да, это работает. Но это не то, что они указывают в плагине jquery. См. Мое редактирование – user1529956

ответ

6

fiddle Demo

jQuery Plugin

/* 
You can now create a spinner using any of the variants below: 

$("#el").spin(); // Produces default Spinner using the text color of #el. 
$("#el").spin("small"); // Produces a 'small' Spinner using the text color of #el. 
$("#el").spin("large", "white"); // Produces a 'large' Spinner in white (or any valid CSS color). 
$("#el").spin({ ... }); // Produces a Spinner using your custom settings. 

$("#el").spin(false); // Kills the spinner. 

*/ 
(function ($) { 
    $.fn.spin = function (opts, color) { 
     var presets = { 
      "tiny": { 
       lines: 8, 
       length: 2, 
       width: 2, 
       radius: 3 
      }, 
       "small": { 
       lines: 8, 
       length: 4, 
       width: 3, 
       radius: 5 
      }, 
       "large": { 
       lines: 10, 
       length: 8, 
       width: 4, 
       radius: 8 
      } 
     }; 
     if (Spinner) { 
      return this.each(function() { 
       var $this = $(this), 
        data = $this.data(); 

       if (data.spinner) { 
        data.spinner.stop(); 
        delete data.spinner; 
       } 
       if (opts !== false) { 
        if (typeof opts === "string") { 
         if (opts in presets) { 
          opts = presets[opts]; 
         } else { 
          opts = {}; 
         } 
         if (color) { 
          opts.color = color; 
         } 
        } 
        data.spinner = new Spinner($.extend({ 
         color: $this.css('color') 
        }, opts)).spin(this); 
       } 
      }); 
     } else { 
      throw "Spinner class not available."; 
     } 
    }; 
})(jQuery); 

Вы также должны включать в себя Spin.js


$('#foo').spin(); 
+1

Спасибо! Похоже, что плагин jquery, связанный с клиентом, неверен, поэтому он не работает. – user1529956

+0

@ user1529956 Включите как spin.js, так и jQuery Plugin. –

6

Если вы не хотите устанавливать функцию в JQuery, вы можете просто использовать элемент запроса.

new Spinner().spin($('#foo')[0]); 
Смежные вопросы