如果单击元素,请执行此功能,除非单击此子项

时间:2014-10-20 19:49:58

标签: jquery sharepoint

在SharePoint中,我试图能够通过标题元素单击组中的任意位置,并让组展开/折叠。我已经让它部分工作了。现在我可以点击元素中的任何位置,但打开它的<a>标记除外。如何在单击任何位置时设置条件以运行该函数,<a>标签除外?

这就是我所拥有的:

$(document).ready(function() { 
var groupby = $(".ms-gb");
groupby.click(function(){
    var groupbyAnchor = $("a", this);
    groupbyAnchor = groupbyAnchor[0];
    expandThisGroup(groupbyAnchor)}); 
});

function expandThisGroup(anchor) {
anchor.click(); 
}

2 个答案:

答案 0 :(得分:1)

在阻止事件传播的子元素上放置另一个处理程序:

groupby.find("a").click(function(e) {
    e.stopPropagation();
});

答案 1 :(得分:1)

你可能会这样做。将click事件目标传递给函数,如果目标不是给定的anchor,则执行某些操作,否则不执行任何操作。

$(document).ready(function(){

    var groupby = $(".ms-gb");

    groupby.on('click', function(e){

        var $target = e.target,
            $anchor = $('a', this);

        if(!($target == $anchor)){
            // do function
        }else{
            return false;
        }
    });
});