2008-09-08 133 views
3

jQuery有一个伟大的语言结构,看起来像这样:将自定义函数绑定到原型中的DOM事件?

$(document).ready(function() { 
    $("a").click(function() { 
     alert("Hello world!"); 
    }); 
}); 

正如你可能已经猜到这一点,一旦该文件已加载,结合自定义函数的所有一个标签的onclick事件。

问题是,我如何在Prototype中实现这种相同的行为?

回答

8

原型1.6提供了有关文档"dom:loaded"事件:

document.observe("dom:loaded", function() { 
    $$('a').each(function(elem) { 
     elem.observe("click", function() { alert("Hello World"); }); 
    }); 
}); 

我还使用each迭代()由$$返回的阵列上。

1
Event.observe(window, 'load', function() { 
    Event.observe(element, 'click', function() { 
     alert("Hello World!"); 
    }); 
}); 

当然,您需要先在Prototype中“选择”元素。

+0

您能否详细说明“先选择元素”?我可以这样做吗? `Event.observe($$('a'),'click',function(){alert('Hello World!');});` – 2008-09-08 12:56:23

+0

@Mark Biek`Event.on(document,'click',' a.greeter_class [rel]',function(event,elt){alert(“Hello”+ elt.readAttribute('rel')); event.stop();});` – 2010-07-15 16:42:31

+0

FYI这是Prototype 1.7语法,它是仍在测试中 – robjmills 2010-07-16 10:28:02

4
$(document).observe('dom:loaded', function() { 
    $$('a').invoke('observe', 'click', function() { 
     alert('Hello world!'); 
    }); 
}); 
相关问题