所以我得到$ .delegate的要点,我知道为什么它正在做它正在做的事情,但我想知道是否有解决方法。
我的链接元素包含这样的跨度:
<a href='#'>
<span>Person Name</span>
<span>Person Info</span>
</a>
我在jQuery中使用以下代码进行事件委派:
containerElement.delegate('click','a',function(){...});
麻烦的是,这只会在我点击没有被跨度占用的空白区域时触发。我知道这样做是因为委托只是简单地将事件目标与'a'进行比较以检查它是否应该触发委托,但是我也要包括跨度,几乎任何内容都在<a>...</a>
做什么?
答案 0 :(得分:2)
你已经反过来写了。第一个参数是选择器,第二个参数是事件名称
$('body')。delegate('a','click',function(){ 警报( '喜'); });
答案 1 :(得分:2)
根据您的评论,我认为您正在寻找以下内容:
target.is('a, a > *');
..或类似的东西。
答案 2 :(得分:0)
答案 3 :(得分:0)
就像,vinhboy建议的那样,我会使用
$("a").live("click", myFunction);
function myFunction()
{
alert("Hello");
}
事实上,给你的标签一个类,如“myLink”,然后在那个
上执行$("a.myLink").live("click", myFunction);
function myFunction()
{
alert("Hello");
}