jQuery脚本BEFORE HTML元素

时间:2011-03-29 07:39:58

标签: jquery html

如果jQuery脚本块位于页面中的html标记之前,jQuery是否可以将事件绑定到元素?

例如,这不起作用:

<script>
    $('a').bind('click', function() {
    alert($(this).attr("innerHTML"));
</script>

<a href="#Hello">Greetings</a>

是的,我可以把脚本放在元素之后,但是,嘿,也许我不想。只是好奇这是否是唯一的方法。

4 个答案:

答案 0 :(得分:5)

是的,如果您将代码放在ready[docs]事件处理程序中(并修复语法错误;)):

$(function() {
    $('a').bind('click', function() {
        alert(this.innerHTML);
        // jQuery way would be: $(this).html()
    });
});

答案 1 :(得分:1)

使用jQuery ready函数:http://api.jquery.com/ready/

<script>
    $(document).ready(function() {
    $('a').bind('click', function() {
    alert($(this).attr("innerHTML"));
    }
</script>

<a href="#Hello">Greetings</a>

请注意,您只需执行$(this).attr("innerHTML")

,而不是使用$(this).html()

答案 2 :(得分:1)

另一种方法是在$(window).load()事件

期间执行脚本
$(window).load(function() {
    $('a').bind('click', function() {
    alert($(this).attr("innerHTML"));
});

现在,所有文档完全加载后,bind将会出现。

答案 3 :(得分:0)

是的,但是将代码包装在$(function(){...})中,告诉jquery在Dom完全加载后执行它,此时所有元素都可用。