javascript - 将 JavaScript 代码转换为 CoffeeScript 和全局变量的问题

标签 javascript jquery coffeescript

我正在学习 Coffeescript 并尝试将以下 JavaScript 代码转换为 Coffescript 并且(我认为)我快完成了。主要是,我在将 timerpopover_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
      )
  })

如有任何建议,我们将不胜感激。

谢谢!

最佳答案

我不确定你是否知道 http://js2coffee.org ,但如果它适用于您的代码,那么它是学习如何将 Javascript 转换为 Coffeescript 的一种非常快速的方法。我在开始接触咖啡时经常使用它。

当然,它也做 coffee 到 js 的编译。

关于javascript - 将 JavaScript 代码转换为 CoffeeScript 和全局变量的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14222303/

相关文章:

php - 在 Drupal 中使用 MYSQL 查询可排序 HTML 表

javascript - 在部分包含选项后获取选项结束标记的数组

if-statement - Coffeescript for 语句的语法问题

javascript - CoffeeScript 与 Node.js 不适用于类

javascript - 如何更改 react 表中单行的边框颜色

javascript - 如何在npm中导入DataTables?

javascript - 除了 class、id 和 text 之外,我还能如何在 jQuery 元素中传递变量?

javascript - 在两个不同元素之间切换类

javascript - 当手动选中/取消选中任何目标复选框时,以编程方式检查所有复选框无法正常工作

javascript - 避免使用 ng-route 路由无哈希 url