如何为这个javascript / jquery函数添加参数?

时间:2012-09-13 02:36:20

标签: javascript jquery parameters param

此脚本允许您单击所需的所有元素,但是当您单击除该元素之外的任何元素时,它会淡出某些内容。在下面的代码中,我可以点击$('.wrapper')内的所有内容,但没有任何反应,但是当我点击该元素之外的任何内容时,我有$('.popup') fadeOut。

(function hideElementOnOffClick(elementWrapper, elementToHide) {

    $(document).bind('click', function(evnt) {
        var $target = $(evnt.target);

       if ($target.is(elementWrapper) || elementWrapper.has(evnt.target).length) {
            return;
        }

        elementToHide.fadeOut();
    });
})(); 

然后我用它中的两个元素类调用该函数:

hideElementOnOffClick($('.wrapper'), $('.popup'))

如果我使用$('.wrapper')代替elementWrapper和$('.popup')而不是elementToHide,它会有效,但是当我把它变成我可以在具有不同类的不同地方调用的东西时,它却没有。

如何修复参数以使其有效?

1 个答案:

答案 0 :(得分:3)

您可以使用.stopPropagation()来停止事件传播,这可以使您的代码更加清晰。

function hideElementOnOffClick(elementWrapper, elementToHide) {
    elementWrapper.click(function(e) {
        e.stopPropagation();
    });
    $(document).click(function(e) {
        elementToHide.fadeOut();
    });    
}