【问题标题】:Event binding not working on div事件绑定在 div 上不起作用
【发布时间】:2013-11-06 23:17:29
【问题描述】:

我有这样的结构:

<ul id="container">
    <li>
        <div tabindex="1" class="selectThis">
            <div>
                <div>
                    <span class="textToEdit" contenteditable="true"></span>
                </div>
            </div>
        </div>
    </li>
<ul>

将事件绑定到内容可编辑范围的工作原理:

$("#container").on("keydown", ".textToEdit", function (e) {
    alert("yes");
});

但是 div 本身没有反应:

$("#container").on("keydown", ".selectThis", function () {
    alert("no");
});

使用.on,因为除了容器之外,整个东西都是动态生成的。我在所述容器上使用 jquery UI 的sortable。绑定有什么问题?我也试过给ulli 一个tabindex,但是div 仍然不会给我一个警报。

【问题讨论】:

  • container 也是动态的吗?如果是,请使用其他非动态的.. 或$("document").on("keydown", ".textToEdit", function (e) {
  • 我用jsfiddle.net 尝试过,点击标签时弹出no。我错过了什么吗?
  • @PilgerstorferFranz 不,你说得对,它确实在那里工作。我会尝试看看我缺少什么使其无法在我的版本中运行并修复我的帖子。
  • @PilgerstorferFranz 啊,明白了——我正在使用 jquery UI 的 sortable,这会终止事件:jsfiddle.net/YwRUE/1
  • 很高兴您发现了错误 - 继续编码!

标签: html jquery


【解决方案1】:

问题是在sortable 上调用ul 后,div 没有被聚焦——手动调用$(".selectThis").focus() 使其工作。感谢Pilgerstorfer Franz 让我意识到这一点!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多