0

我是一个咖啡脚本新手,想在一个客户端视图上使用多个 jquery 滑块。我想将幻灯片事件用于几个功能。滑块显示,值在开始时显示,滑块可用,但未使用事件。

class Slider  
 constructor: (@min, @max, @value, @id) ->
   d3.select(@id).attr("style", "width: 500px; margin: 15px;")
   @myslider = $(@id).slider
     min: @min
     max: @max
     value: @value
   $(@id).bind
  slide: @slideme

 slideme: (event, ui) =>
   $(@id +"_data").val(@value)

$(document).ready ->
  slider1 = new Slider(0,800,100,'#testslider')
  $("#testslider_data").val($("#testslider").slider("value"))

使用滑块时,我需要做什么才能使 html 中显示的幻灯片的值?

4

1 回答 1

0

您的缩进已关闭。这个:

 $(@id).bind
slide: @slideme

应该是这样的:

$(@id).bind
  slide: @slideme

或者:

$(@id).bind slide: @slideme

或者我个人最喜欢的:

$(@id).bind(slide: @slideme)

CoffeeScript 对空格和格式非常敏感,您的格式定义了大部分代码的结构,因此您必须小心且一致;您正在为缩进混合一个和两个空格,这只会造成麻烦。

您的原始代码:

constructor: (@min, @max, @value, @id) ->
  #...
  $(@id).bind
 slide: @slideme

会是这样的:

constructor: (@min, @max, @value, @id) ->
  #...
  $(@id).bind

slide: @slideme

因此,您slide: @slideme打算用于的参数bind将看起来像该类的另一个属性,并且最终将作为以下 JavaScript:

Slider.prototype.slide = Slider.slideme;

将您的代码粘贴到coffeescript.org 的TRY COFFEESCRIPT面板中,您将看到它认为您的CoffeeScript 意味着什么。

于 2013-01-08T16:35:30.150 回答