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

如何向这个javascript/jquery函数添加参数?,javascript,jquery,parameters,param,Javascript,Jquery,Parameters,Param,这个脚本允许你点击一个你想要的元素,但是当你点击除该元素以外的任何东西时,它会淡出一些东西。在下面的代码中,我可以单击$('.wrapper')中我想要的所有内容,但什么都不会发生,但是当我单击该元素之外的任何内容时,我有了$('.popup')淡出 (function hideElementOnOffClick(elementWrapper, elementToHide) { $(document).bind('click', function(evnt) { var

这个脚本允许你点击一个你想要的元素,但是当你点击除该元素以外的任何东西时,它会淡出一些东西。在下面的代码中,我可以单击
$('.wrapper')
中我想要的所有内容,但什么都不会发生,但是当我单击该元素之外的任何内容时,我有了
$('.popup')
淡出

(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,它是有效的,但是当我把它变成我可以在不同的地方用不同的类调用的东西时,它就不起作用了

如何修复参数以使其正常工作?

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

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

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

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