小编jos*_*eph的帖子

hover()中的jQuery动画仅在第二次触发

我正在使用jQuery在hover()上设置高度变化的动画.

在悬停时,它将应用.hover类,并在单击时,它将切换.expanded类.它主要是有效的,有适当的动画,但只是在第一次之后.第一次悬停将完全跳过动画.

我很难过 - 这是令人讨厌的代码:

$('#expandingbox').hover(

    /*on mouseenter, if not expanded, add hover class*/
    function() {
    if (!$(this).hasClass("expanded")) {
        $(this).stop(true, true).addClass("hover", "slow");
    }},

    /*on mouseout, if not expanded, remove hover class*/
    function() {
    if (!$(this).hasClass("expanded")) {
        $(this).stop(true, true).removeClass("hover", "slow");
    }
}).click(function() {
    $(this).toggleClass("expanded", "slow");
});
Run Code Online (Sandbox Code Playgroud)

我找到了添加$('#expandingbox')的地方.触发器('mouseout')将解决这个问题,但它对我不起作用.这是一个重现问题的例子:http: //jsfiddle.net/Qc42v/


更新: 提交一张票,结果证明这是一个jQuery错误.相同的代码适用于jQuery 1.5(以及最新版本的jQuery UI).

jquery jquery-ui jquery-hover

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

Rails 3,仅在用户登录时呈现部分

在Rails 3.1应用程序中,我有一个user_logged_in?从Devise 调用的方法,我想用它来有选择地渲染部分.这是layouts/application.html.erb中的代码:

<% if user_logged_in? %>
<%= render :partial => "home/statusbar" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

它使用来自不同控制器的部分.这是部分:

<div id="status_bar">  
  Signed in as <%= link_to current_user.name, edit_user_registration_path %>
</div>
Run Code Online (Sandbox Code Playgroud)

current_user.name(未定义的方法)发生错误,因为current_usernil.我可以user_logged_in?在部分内部移动支票,但我认为如果它在视图中会略微提高效率.

您能指导我了解最佳实践,或者如何克服未定义的方法错误?Rails检查模板的代码是否正常,即使它在if块中失败了?

ruby-on-rails view devise ruby-on-rails-3

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

使用Ruby on Rails进行时间可用性比较

我希望有一个多个对象的可用性表,并进行比较.例如,承租人将搜索租赁单位,该单位可在星期一下午1-3点开始使用.

要做到这一点,我想我会将一周划分为30分钟的时段,并为每个时段分配一个ID.然后日期范围将搜索相应的时隙ID.

然而,那时我需要5040条记录来跟踪每个时间段,而且我对于手动维护它并不太兴奋(在Ruby中我不知道如何去做).是否有更优雅的方法,通过使用日期时间,或一些Rails插件,将执行类似于我想要的东西,但更容易?

关键要求是它必须比较多个分开的时间块.

编辑:如果可以有一种比较多个时间块来查看最佳匹配的方法,那将是一个奖励.例如,如果我想在星期一,星期三和星期五租用摄像机,并且一天有一台摄像机可用,而另一台摄像机只有两天可用,我希望能够对摄像机进行比较和排序.最佳匹配的基础.

ruby algorithm database-design ruby-on-rails ruby-on-rails-3

4
推荐指数
1
解决办法
2319
查看次数