该类“打开”会添加到ul
元素,但不会添加到dropdown#register
元素。
<ul class="nav"></ul>
<script> $("#register_dropdown").addClass("open"); </script>
<script> $("ul").addClass("open"); </script>
<span class="dropdown" id="register_dropdown"></span>
答案 0 :(得分:3)
$("#register_dropdown")
返回一个空的jQuery对象,因为执行该行时,DOM中不存在register_dropdown
。
我对HAML没有经验,但将您的脚本包装在DOM ready handler内是可行的方法:
%script $(function(){ $("#register_dropdown").addClass("open"); });
在普通标记中,它应呈现为:
<script> $(function(){ $("#register_dropdown").addClass("open"); }); </script>
如果您愿意,也可以使用更详细的方式(与上面的结果相同):
$(document).ready(function() {
//DOM is ready, put your code here
$("#register_dropdown").addClass("open");
});
这可以防止您的代码在DOM完全加载之前运行。您可以在将元素添加到DOM之后移动该行,但是在准备好DOM之后操作它是一种很好的做法。