2010-05-05 53 views

回答

5

live选择将div span a(一span这是一个div内某处内的某处a)。例如:

$('div span a').live('click', function() { 
    // ... 
}); 

如果你想将它限制为仅a这是一个span直接子这是一个直接孩子div,这将是adiv > span > a(或div span > a s是span的直接子女,div等)。

如果您只想为一个特定的div执行此操作,请将div替换为#the_id_of_the_div(或任何其他可识别该特定div的选择器)。

5

如果有大量的锚(a,或“HREF中”作为OP称他们)的那么这可能是更好的使用事件代表团写:附上一个click监听父div和回调,找出哪个a最初解雇了这个事件。

$('#yourDiv').click(function (event) 
{ 
    var $target = $(event.target); 
    if($target.is('div>span>a') 
    { 
     // your callback logic here, where you can consider 
     // $target to be analogous to $(this) in a non-delegated handler 
    } 
}); 
+0

++哇,非常好的方式来处理!但我认为他的问题是preventDefault(),不是吗? – meo 2010-05-05 17:01:56

+1

这是'.live'和'.delegate'方法在内部执行的操作,没有理由手动执行它。 – interjay 2010-05-05 17:12:18

+0

相关知识!但他使用了点击;) – meo 2010-05-05 17:43:02

相关问题