小编Jos*_*son的帖子

检测父母是可信的div的可信孩子的keyup事件

目标:将一个keydown事件处理程序附加到一个可信任的跨度,该跨度是一个可信任的div的子级.

问题:如果您键入跨度,则触发父事件而不是子项.我想要的是孩子触发所以我可以抓住文本.我只想要那个有满足感的孩子,因为会有很多孩子.

HTML/JS在下面,小提琴链接在这里:http://jsfiddle.net/aBYpt/4/


HTML

<div class="parent" contenteditable="true">
    Parent div text.

    <span class="child" contenteditable="true">First child span text.</span>
    <span class="child" contenteditable="true">Second child span text.</span>
    <span class="child" contenteditable="true">Third child span text.</span>
</div>

<div id="console"></div>
Run Code Online (Sandbox Code Playgroud)

的JavaScript/jQuery的

$(document).on( 'keyup', '.parent', function() {
    $('#console').html( 'Parent keyup event fired.' );
    //do stuff
});

$(document).on( 'keyup', '.child', function() {
    $('#console').html( 'Child keyup event fired.' );
    //do stuff
});
Run Code Online (Sandbox Code Playgroud)

**注意:事件处理委托给文档,因为元素是动态添加的.

html javascript jquery contenteditable

11
推荐指数
1
解决办法
9798
查看次数

解释:jQuery缓存代码

如果先前已选择了元素,则此代码片段将从缓存中返回元素,或者选择,缓存并返回元素.它对于更新从未显着改变的元素的内容(即,用户看到的计数器的父级,其中数字改变但父级不改变)是有用的.代码如下:

var $$ = (function() {
    var cache = {};
    return (function (selector) {
        return cache[selector] || ( cache[selector] = jQuery (selector) );
    });
})();
Run Code Online (Sandbox Code Playgroud)

您可以像这样使用它:

$$('#id')


现在......这是怎么回事?如何$$访问jQuery选择器?它与$$开始无关$,你也可以这么做var foo.如何$$映射传递给它的内容selector.我希望看到var selector = argumentName里面$$.另外,对我来说似乎没有$$设置接收参数(例如,函数(输入){}),但它很容易吗?

这段小代码让我感到非常困惑,一些清晰度将会非常受欢迎.谢谢!

javascript jquery caching

4
推荐指数
1
解决办法
112
查看次数

标签 统计

javascript ×2

jquery ×2

caching ×1

contenteditable ×1

html ×1