spin.js - 无法删除微调器?

时间:2014-05-24 15:57:55

标签: javascript jquery spin.js

无论我尝试什么,我似乎无法阻止这个微调器。

我已经四处寻找方法,但我没有尝试过任何工作。

小提琴:

http://jsfiddle.net/gmvT4/5/

备份代码:

var opts = {
    lines: 13, // The number of lines to draw
    length: 5, // The length of each line
    width: 2, // The line thickness
    radius: 5, // The radius of the inner circle
    corners: 1, // Corner roundness (0..1)
    rotate: 58, // The rotation offset
    direction: 1, // 1: clockwise, -1: counterclockwise
    color: '#fff', // #rgb or #rrggbb or array of colors
    speed: 0.9, // Rounds per second
    trail: 100, // Afterglow percentage
    shadow: false, // Whether to render a shadow
    hwaccel: false, // Whether to use hardware acceleration
    className: 'spinner', // The CSS class to assign to the spinner
    zIndex: 2e9, // The z-index (defaults to 2000000000)
    top: '50%', // Top position relative to parent
    left: '50%' // Left position relative to parent
};

var target = document.getElementById('foo');

$(document).on('click', '#spin', function () {
    var spinner = new Spinner(opts).spin(target);
});

$(document).on('click', '#stop', function () {
    $("#foo").data('spinner').stop();
});

<div id="foo"></div>
<button id="spin">Spin!</button>
<button id="stop">Stop!</button>

感谢您的帮助!克雷格。

1 个答案:

答案 0 :(得分:3)

Uncaught TypeError: Cannot read property 'stop' of undefined

此错误告诉您一些事情。您正试图在.stop()上投放$("#foo").data('spinner')。相反,使用由微调器创建的实例,您需要首先在该单击事件的范围之外声明该实例。

var spinner;

$(document).on('click','#spin',function(){
  spinner = new Spinner(opts).spin(target);
});

$(document).on('click','#stop',function(){
  spinner.stop();
});

Updated fiddle c /oRenéRoth