我正在创建一个页面,其中多个链接将打开一个facebox(灯箱样式 div)。
对于#artworks-col
div 内页面上的链接,我希望强制以 800px 宽度打开 facebox;对于所有其他人,我只希望它使用其默认计算。
将它放在页面上会强制所有链接将其打开为 800px 宽:
<script type="text/javascript">
$(document).bind('beforeReveal.facebox', function() { $('#facebox .content').css('width', '800'); });
</script>
但是经过多次尝试使其仅适用于 中的链接后#artworks-col
,我仍然只能将其应用于全部或不适用。有没有办法过滤此绑定事件以特定于该链接子集?
我认为能够做到这一点的唯一方法是使用设置一个临时标志$("a#artworks-col").click(var flag = true);
并在文档范围的绑定事件中检查该标志(并在运行宽度修改后在绑定事件中清除它)但这似乎真的混乱,而且肯定有更好的方法来解决这个问题。
这是此页面的 RoR 视图(请注意,一旦运行,脚本将被移至外部文件,现在将其全部放在一个位置更容易):
<div id="admin_logo">
<%= image_tag("logo_admin.png", alt: "Administration") %>
</div>
<div id="artworks-col"><%= render partial: "artworks_list" %></div>
<div id="artists-col"><%= render partial: "artists_list" %></div>
<div id="locations-col"><%= render partial: "locations_list" %></div>
<div id="insurers-col"><%= render partial: "insurers_list" %></div>
<div id="users-col"><%= render partial: "users_list" %></div>
<div id="show-object" style="display:none;"></div>
<script type="text/javascript">
$(document).bind('beforeReveal.facebox', function() { $('#facebox .content').css('width', '800'); });
</script>
上面 erb 代码中的渲染部分只是<a href>
为数据库中该类型的所有对象添加一个列表。这些链接是我想要应用此功能的链接。
编辑
由于我无法按照我的意愿通过 jQuery 实现此功能,因此我将使用 CSS 来定义一个宽度为 800px 的 div,以便在单击这些特定链接时显示。我更喜欢通过 jQuery 来做到这一点,因为它会在其他需要更动态方法的情况下使用,但现在必须这样做。