1

情况是这样的:我有一个我们可以使用$('#container')的 div,而这个 div 的子 div 是('#tracker'). 在跟踪器上,我将事件绑定为:

$(document).on('mousemove', '#tracker', function(e) {
    console.log(e.clientX);
}

但是,我希望将它绑定到容器的上下文中,即我希望功能与以下内容相同:

$('#tracker', '#container').onmousemove = function() { ... }

但适用于文件。或另有说明的建议

[编辑] 很抱歉原始问题含糊不清。

如果我尝试缓存,那么我可以做var v = $('#tracker', '#container'),然后我可以做v.onmousemove = function () { ... }

这是如何工作的:

$(document).on('mousemove', <cached in var>, function(e) {
    console.log(e.clientX);
}
4

2 回答 2

1

我可能弄错了,因为它看起来有点明显,但这是你想要的吗?

$(document).on('mousemove', '#container #tracker', function(e) {

}
于 2013-04-12T09:11:00.057 回答
1

只需扩展传递给的选择器.on()以仅查找#tracker元素内的#container元素:

$(document).on('mousemove', '#container #tracker', function(e) {
    console.log(e.clientX);
});

如果您想将对象缓存在另一个变量中,有几种方法可以做到这一点。第一个与以前相同,但在调用时不会使用它.on()

var v = $('#tracker', '#container');

$(document).on('mousemove', '#container #tracker', function(e) {
    // use v here
});

// you can also use v here

或者,如果您只需要在事件处理函数内部使用它,您可以这样做:

$(document).on('mousemove', '#container #tracker', function(e) {
    var v = $(this);
    // use v here
});
于 2013-04-12T09:11:19.420 回答