作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此脚本允许您随意单击某个元素,但是当您单击该元素以外的任何内容时,它会淡出某些内容。在下面的代码中,我可以在 $('.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,它会起作用,但是当我制作它时变成我可以在不同地方、不同类(class)调用的东西,但事实并非如此。
如何修复参数才能使其正常工作?
最佳答案
您可以使用.stopPropagation()
来停止事件传播,这使您的代码更加清晰。
function hideElementOnOffClick(elementWrapper, elementToHide) {
elementWrapper.click(function(e) {
e.stopPropagation();
});
$(document).click(function(e) {
elementToHide.fadeOut();
});
}
关于javascript - 如何向这个 javascript/jquery 函数添加参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12398683/
我是一名优秀的程序员,十分优秀!