好的,我在DIV中有一个单选按钮列表,当我点击span时,这个DIV会向下滑动。
现在,当我选择其中一个单选按钮时,跨度中的文本会被替换,DIV会向上滑动。
每当用户点击页面外的某个位置/页面上的任何其他位置时,我还需要使带有单选按钮列表的DIV向上滑动。
这是我的jQuery:
$('input[type=radio]').click(function() {
$('.selected-search-wjs').text($(this).parent().text());//This replaces the text/selection
$('.radio-btns-wrapper-wjs').slideUp('fast');//This makes the DIV slide back up after a selection has been made
});
知道怎么做吗?
提前致谢。
PS。如果您需要HTML,请告诉我。我没有把它放在这里因为我认为没有必要,因为这是一个行为特征,无论HTML如何组合在一起。感谢。
答案 0 :(得分:3)
试试这个:
var wrapper = $('.radio-btns-wrapper-wjs'); // cache the wrapper element for speed
$(document).click(function(e) { // when any click is received
if (
(wrapper[0] != e.target) && // the target element is not the wrapper
(!wrapper.has(e.target).length) // and the wrapper does not contain the target element
) {
wrapper.slideUp('fast');
}
});
答案 1 :(得分:0)
尝试jQuery是:未选中,如
$('body:not(.radio-btns-wrapper-wjs, input[type=radio])').click(function() { $('.radio-btns-wrapper-wjs').slideUp('fast'); });
答案 2 :(得分:0)
以下是此解决方案。
我需要做的就是使用 .mouseleave 方法创建另一个函数:
$('.radio-btns-wrapper-wjs').mouseleave(function() {
$(this).slideUp();
});
现在,我正在使用 .mouseout ,但它没有用,因为容器DIV中有子元素,所以一旦你将鼠标悬停在它们上面,DIV就会向上滑动。
所以我找到了关于为什么以及如何解决它的简单解释:
http://jquery-howto.blogspot.com/2009/04/problems-with-jquery-mouseover-mouseout.html
感谢。
修改 - 强>
我遇到了这个案例的其他问题,请在此处查看问题和解决方案:Hide element if displayed (a little complex case)