小编Dav*_* V.的帖子

jQuery,在多个动画之后只调用一次回调

假设我有几个动画同时运行,并且我想在完成所有这些动作后调用它.

只有一个动画,很容易; 有一个回调.例如 :

$(".myclass").fadeOut(slow,mycallback);
Run Code Online (Sandbox Code Playgroud)

麻烦的是,如果我的选择器找到了几个项目,那么将为每个项目调用回调.

解决方法并不太难; 例如 :

<!DOCTYPE html>
<html>
<head>
  <title>Example</title>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
      var $mc=$(".myclass"),l=$mc.length;
      $mc.fadeOut("slow",function(){
        if (! --l) $("#target").append("<p>All done.</p>");
      });
    });
  </script>
  <style type="text/css">
  </style>
</head>
<body>
  <p class="myclass">Paragraph</p>
  <p class="myclass">Paragraph</p>
  <p class="myclass">Paragraph</p>
  <p class="myclass">Paragraph</p>
  <p class="myclass">Paragraph</p>
  <p class="myclass">Paragraph</p>
  <div id="target"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的问题是:有更好的方法吗?

jquery jquery-animate

26
推荐指数
2
解决办法
1万
查看次数

有没有更好的方法将UTCTime转换为EpochTime?

我想将文件的修改时间设置为从exif数据获得的时间.

为了从exif获得时间,我发现:

Graphics.Exif.getTag :: Exif -> String -> IO (Maybe String)
Run Code Online (Sandbox Code Playgroud)

要设置文件修改时间,我发现:

System.Posix.Files.setFileTimes :: FilePath -> EpochTime -> EpochTime -> IO ()
Run Code Online (Sandbox Code Playgroud)

假设我确实在Exif中找到了Time,我需要将String转换为EpochTime.

  • 随着parseTime我可以得到一个UTCTime.
  • 随着utcTimeToPOSIXSeconds我可以得到一个POSIXTime
  • 有了POSIXTime我可以或多或少得到一个EpochTime

从转换UTCTimeEpochTime这个typechecks,但我不知道它是正确的:

fromIntegral . fromEnum . utcTimeToPOSIXSeconds $ etime
Run Code Online (Sandbox Code Playgroud)

这是函数getTime的一部分,它将从Exif数据返回时间(如果存在),否则返回文件的修改时间:

getTime (path,stat) = do
 let ftime                 = modificationTime $ stat
     err (SomeException _) = return ftime
 time <- liftIO $ handle err $ do
   exif <- Exif.fromFile path
   let getExifTime = …
Run Code Online (Sandbox Code Playgroud)

time haskell epoch

8
推荐指数
2
解决办法
3043
查看次数

angularJS element.on回调和范围.$ apply

在这个例子中,我有一个附加指令的输入.该指令用于显示输入旁边的消息.还有另一个输入和一个添加消息的按钮.显示某些消息后,使用附加指令关注输入应清除消息. http://jsfiddle.net/viro/WBqxf/

所以我有一个带有隔离模型的指令,我正在尝试在具有指令的元素成为焦点时更新模型.好像我必须在事件范围内包装事件回调.$ apply如果我想更新模型:

element.on('focus',function(){
    scope.$apply(function(){
        console.log("focus !");
        scope.tstMsg=[];
    })
});
Run Code Online (Sandbox Code Playgroud)

我想我必须将它包装在$ apply中,因为我正在使用jqlite事件回调,我猜它们在"外部"angularJS中运行,但我没有在文档中明确说明它.

我做得对吗还是黑客攻击?

有没有更好的方法呢?

angularjs angularjs-directive jqlite angularjs-model

6
推荐指数
1
解决办法
7904
查看次数

使用wxhaskell绘制缩放位图

图像浏览器实例说明如何显示在一个ScrolledWindow的图像.

如果我想在可用空间中显示图像,根据需要缩放位图,该怎么办?

我的google-fu在这一次失败了.

编辑:我以为我有一些东西scrolledWindowSetScale,但看起来它在这里没有帮助.

wxwidgets haskell bitmap scale wxhaskell

5
推荐指数
1
解决办法
470
查看次数

optparse-applicative 子命令帮助文本

我正在使用 stackage lts 5.1 附带的 optparse-applicative 我有一个带有子命令的解析器,并且我已经描述了它们的选项的帮助文本,但它们没有显示。

这是我运行可执行文件时的输出--help

[david@devcentos65 manipro]$ /home/david/.local/bin/manipro --help
manipro - text1

Usage: manipro COMMAND [-v|--verbose]   text2

Available options:  
  -h,--help                Show this help text  
  -v,--verbose             text3

Available commands:   
  export                   text4
  dico                     text9
Run Code Online (Sandbox Code Playgroud)

代码 :

parserArgs :: ParserInfo ArgApp
parserArgs = info (helper <*> args) desc
    where
    desc =  
        fullDesc <> 
        progDesc "text1"  <> 
        header "text2"


args = ArgApp <$> argCmd <*> optverbose
    where
    optverbose = switch ( 
        short 'v' <> long "verbose" <> 
        help "text3" …
Run Code Online (Sandbox Code Playgroud)

haskell command-line-arguments applicative optparse-applicative

2
推荐指数
1
解决办法
1040
查看次数