javascript – .on()事件未触发
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – .on()事件未触发,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1215字,纯文字阅读大概需要2分钟。
内容图文
不确定为什么以下代码不起作用.如果我将.on()更改为.live()它可以正常工作,但实时事件会一直存在,因为这将会在页面内外发生,而不是一次,live会在每次单击时继续添加到事件行.我觉得短而瘦,为什么这不会开火?
$("#" + old_n).on('mousedown', function(evt) {
console.log(old_n);
if($(el).data('clickphase')) {
return true;
}
$("#" + $.contextmenu).remove();
$(el).data('served', true);
if(typeof array_of_a[a_index][1] == 'function') {
array_of_a[a_index][1](evt, el);
}
// console.log(array_of_a[a_index]);
// array_of_a[a_index][1](evt, el);
$(el).removeData('served');
});
old_n是当前< li>的id.点击它,也有一个悬停事件,但这不应该破坏mousedown事件吗?
解决方法:
$("#" + old_n).on('mousedown', function(evt) {
只有在呈现页面时存在old_n才会起作用.这是一个直接约束的事件,与之相同
$("#" + old_n).bind('mousedown', function(evt) {
您想要一个委派的事件:
$(document).on("mousedown", "#" + old_n, function(evt) {
这将导致文档中任何位置的所有mousedown事件被jQuery“监听”,如果任何来自与old_n的selector-id匹配的元素,则事件处理程序将触发.
当然,在文档中的任何地方收听每个mousedown事件都有点浪费.如果你知道这个元素只会存在于id为foo的div中(并且在呈现页面时存在foo),那么为什么不只是听foo上的事件呢?
$("#foo").on("mousedown", "#" + old_n, function(evt) {
内容总结
以上是互联网集市为您收集整理的javascript – .on()事件未触发全部内容,希望文章能够帮你解决javascript – .on()事件未触发所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。