2

簡単なことを実装したい(ここでモックアップ)

[+] 123 [-]

ユーザーがマウスを押したままにする+-、合計が増減したとき。

だから私はこれを行うための簡単なスクリプトを書きます(http://jsfiddle.net/wFAfy/3/)、それはうまくいくようですが、私は前線であまり経験がないので、このアプローチの効率/堅牢性に興味があります-終わり。

または、これを行うためのより良い方法はありますか(おそらくプラグインなどを使用して)?

HTML:

<p id="sum">0<p>
<a id="inc" href="#">inc on hover</a> | 
<a id="dec" href="#">dec on hover</a>

JavaScript:

sum = $("#sum")
inc = $("#inc")
dec = $("#dec")

currentSum = -> parseInt sum.text()

incSum = -> sum.text currentSum() + 1    
decSum = -> sum.text currentSum() - 1
    
run = (f, direction) ->
  -> 
    return unless running[direction] == true
    f()

running = { inc: false, dec: false }

inc.mouseenter -> running.inc = true
inc.mouseleave -> running.inc = false
dec.mouseenter -> running.dec = true
dec.mouseleave -> running.dec = false

setInterval run(incSum, "inc"), 200
setInterval run(decSum, "dec"), 200
4

1 に答える 1

1

Ianの提案に同意します-その実装のサンプルを次に示します。

$sum = $ '#sum'
$inc = $ '#inc'
$dec = $ '#dec'

currentSum = 0

incSum = -> $sum.text currentSum++
decSum = -> $sum.text currentSum--

interval = null

$inc.on
  'mouseenter' : ->
    interval = setInterval incSum, 200
    incSum()
  'mouseleave' : -> clearInterval interval

$dec.on
  'mouseenter' : ->
    interval = setInterval decSum, 200
    decSum()
  'mouseleave' : -> clearInterval interval
于 2013-04-23T20:49:27.333 に答える