0

私はコーヒースクリプト初心者で、1 つのクライアント側ビューで複数の 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 は空白と書式設定に非常に敏感です。書式設定によってコードの構造の大部分が定義されるため、注意して一貫性を保つ必要があります。インデント用に 1 つと 2 つのスペースを混在させているため、問題が発生するだけです。

元のコード:

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 に答える