嗨我想让我的侧滑块按钮在用户点击它之外时平滑地滑回到位置。
如果你想在这里检查它是jfiddle
截至目前,当你在它外面点击它时它不会回到位置。
JS
$(document).ready(function () {
$('#slideleft .mybutton').click(function () {
var $lefty = $(this).parent();
$lefty.animate({
left: parseInt($lefty.css('left'), 10) == 0 ? -$lefty.outerWidth() + 31 : 0
});
});
});
答案 0 :(得分:1)
请尝试以下方法:
$(document).mouseup(function (e) {
var $lefty = $('#slideleft .mybutton').parent();
var container = $("#slideleft");
if (parseInt($lefty.css('left')) == 0) if (container.has(e.target).length === 0) {
animate();
}
});
这是一个工作小提琴:
答案 1 :(得分:1)
使用一些event.target
技巧可以实现:
$(document).on('click', function (event) {
if (event.target !== $('#slideleft .mybutton')[0]) {
$('#slideleft .mybutton').hide(); //or slide however you want to.
}
});
如果您注意到这实际上比较了实际的HTML而不是jQuery对象。
这是因为.target
会返回所点击内容的实际HTML。
答案 2 :(得分:1)
添加此作品:
$(document).click(function () {
var $lefty = $('#slideleft .mybutton').parent();
if(parseInt($lefty.css('left'), 10) == 0){
$lefty.animate({
left: -$lefty.outerWidth() + 31
});
}
});
以下是fiddle