所以我有这个功能
$('#wrapper').click(function () {
hideDropDown();
checkForPiehtcFix();
hideSearch();
});
#wrapper 包含我的所有内容。因此,每当我单击任何地方时,我都会隐藏我的搜索 div。
function hideSearch() {
isDropSearch = false;
$('#mn_search').css({ 'background-position': '0 0' });
$('#dd_search').removeClass('show').addClass('hide');
}
问题是,当用户单击我的搜索(即 div #dd_search)时,我不想隐藏搜索,因为用户永远无法输入搜索,因为当他们单击它时,它会关闭。
因此,我希望在 #wrapper click 中添加一个子句,以检查他们是否在 #dd_search 中单击,如果单击了,那么我不想调用 hideSearch();
最佳答案
一种方法是:
$('#wrapper').on('click', ':not(#dd_search)'(function () {
...
});
第二种方法是:
$('#wrapper').click(function (e) {
if (e.target.id == 'dd_search' || $(e.target).find('#dd_search').length)
return false;
...
...
});
第三种方法是:
$('#wrapper').click(function () {
...
});
$('#dd_search').click(function(){
return false; // stops the bubbling.
});
关于Jquery .click 函数,更改特定 id 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14221837/