1

私は Coffeescript を学んでおり、次の JavaScript コードを Coffescript に変換しようとしていますが、(私はそう思います)ほぼそこにいます。主に、timerおよびpopover_parent変数をグローバルにする際に問題が発生しています。

$('.some_element').popover(
  {
    delay: { show: 350, hide: 100 }       
  }
);
var timer,
    popover_parent;
function hidePopover(elem) {
    $(elem).popover('hide');
}
$('.some_element').hover(
    function() {
      var self = this;
      clearTimeout(timer);
      $('.popover').hide(); //Hide any open popovers on other elements.
      popover_parent = self
      $(self).popover('show');            
    }, 
    function() {
      var self = this;
      timer = setTimeout(function(){hidePopover(self)},300);                 
});
$('.popover').on({
  mouseover: function() {
    clearTimeout(timer);
  },
  mouseleave: function() {
    var self = this;
    timer = setTimeout(function(){hidePopover(popover_parent)},300); 
  }
});

これは私がこれまでに持っているものです:

$ ->
  $('.some_element')
    .popover ->
      delay: {show:350, hide: 100}
$ ->
  hidePopover = (elem) ->
    $(elem).popover('hide')

  $('.some_element').hover(
    ->
      self = $(this)
      clearTimeout(timer)
      $('.popover').hide()
      popover_parent = self
      $(self).popover('show')
    ->
      self = $(this)
      timer = setTimeout(
        ->
          hidePopover(self) 300
      )
  )

$ ->
  $(document).on({
    mouseover: ->
      clearTimeout(timer)
    mouseleave: ->
      timer = setTimeout(
        ->
          hidePopover(popover_parent) 300
      )
  })

どんな提案でも大歓迎です。

ありがとう!

4

1 に答える 1

2

http://js2coffee.orgについて知っているかどうかはわかりませんが、コードで動作する場合は、Javascript を Coffeescript に変換する方法を学ぶための非常に簡単な方法です。コーヒーを始めた頃によく利用していました。

もちろん、コーヒーからjsへのコンパイルも行います。

于 2013-01-08T19:58:37.853 に答える