0

假设我们有带有 class 的 div .row

目前我的实时点击功能如下所示:

$(".row").live('click',function(event) {

我想要做的就是将此函数仅应用于那些 div,这些 div 位于具有 class 的精确 div 内data。我是说

<div class="row">!don't apply!</div>
<div class="data">
   <div class="row">apply1!</div>
   <div class="row">apply2!</div>
</div>

我怎样才能做到这一点?

4

5 回答 5

3

使用 jQuery 的.on()

$('.data').on('click', '.row', function(){
  // function stuff
});

如果.data也是异步加载的,您可以“更进一步”

$('body').on('click', '.data .row', function(){
  // function stuff
});

只需'body'用您的换行选择器替换...

于 2012-05-03T09:33:05.437 回答
1
$(".data > .row").live('click',function(event) {

});

但尽量避免live()使用如下:

$('.data').on('click', '.row', function() {

});

或者你可以使用delegate()

$(".data").delegate(".row", "click", function(){

});
于 2012-05-03T09:32:14.377 回答
1

你可以用你的选择器更具体一点,即

$(".data > .row").live('click',function(event) {...
于 2012-05-03T09:33:19.587 回答
0
$('.data > .row').live('click',function(event) {

你去吧。

CSS 选择器 > 只选择“真正的”孩子。不允许孙子。

并且使用 on() 因为 live() 不再被鼓励。

于 2012-05-03T09:32:06.347 回答
0
$('.data > .row').live('click',function(event) {
于 2012-05-03T09:35:32.557 回答