我有一个动态创建的按钮,所以我需要在我的代码上使用.live.这是一个例子:
$('#send').live('click', function(){
.....
..... code .....
.....
});
Run Code Online (Sandbox Code Playgroud)
我正在使用jQuery库1.7.1,我想将其更改为使用.on但它不起作用.为什么是这样?语法不同吗?
我查看了文档,我似乎没有做错任何事.我不介意把它留下来,但我想知道我做错了什么.
nnn*_*nnn 19
语法不同吗?是.你读过.on()你所链接的所有doco页面了吗?
以下有关如何从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+
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下你想要:
$(document).on('click', '#send', function(){
// your code here
});
Run Code Online (Sandbox Code Playgroud)
请注意,理想情况下,您将不会使用$(document),您将使用$(someotherelement)将处理程序附加到更靠近"#send"元素的元素.如果可以的话,随便用"#send"的直接父元素,或者是动态创建父也使用它的母公司.
要使用事件委派,.on需要两个选择器,例如.delegate.
$('some container').on('click', '#send', function() { ... });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3619 次 |
| 最近记录: |