jquery on不起作用,但live确实使用1.7.1库

我有一个动态创建的按钮,所以我需要在我的代码上使用.live。 这是一个例子:

$('#send').live('click', function(){ ..... ..... code ..... ..... }); 

我正在使用jQuery库1.7.1,我想将其更改为使用.on但它不起作用。 为什么是这样? 语法不同吗?

我查看了文档,我似乎没有做错任何事情。 我不介意把它留下来,但我想知道我做错了什么。

http://api.jquery.com/on/

语法不同吗? 是。 你读过你链接的所有.on() doco页面了吗?

以下有关如何从.live()切换到.delegate().on()来自.live() doco页面 :

 $(selector).live(events, data, handler); // jQuery 1.3+ $(document).delegate(selector, events, data, handler); // jQuery 1.4.3+ $(document).on(events, selector, data, handler); // jQuery 1.7+ 

所以在你的情况下你想要:

 $(document).on('click', '#send', function(){ // your code here }); 

请注意,理想情况下,您不会使用$(document) ,您将使用$(someotherelement)将处理程序附加到更靠近’#send’元素的元素。 如果可以的话,使用’#send’的直接父元素,或者如果动态创建父元素,也使用其父元素。

要使用事件委托, .on需要两个选择器,如.delegate

 $('some container').on('click', '#send', function() { ... });