Javascript jQuery:在类上单击:切换div,在其他地方单击:隐藏div
我有3个Javascript jQuery:在类上单击:切换div,在其他地方单击:隐藏div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有3个,它们都有类.info btn,带有data=“1”参数(从1到3) 如果你用class.info btn点击一个,它应该在varx中获得数据=*参数,并且应该用$('.div info-'+x)创建fadeToggle(“快速”)一个可见的div,其类为.div info-*(*=1,2或3;每个类都存在) 我还想要的是:如果单击位于上的其他位置,则可以使用.data()存储单击的元素。单击文档后,检查目标是否既不是div也不是其父级(可选),然后将其隐藏 HTML 点击时应该可以看到
,它们都有类.info btn
,带有data=“1”
参数(从1到3)
如果你用class.info btn
点击一个
,它应该在varx
中获得数据=*
参数,并且应该用$('.div info-'+x)创建fadeToggle(“快速”)
一个可见的div,其类为.div info-*
(*=1,2或3;每个类都存在)
我还想要的是:如果单击位于上的其他位置,则可以使用.data()
存储单击的元素。单击文档后,检查目标是否既不是div
也不是其父级(可选),然后将其隐藏
HTML
点击时应该可以看到的信息
这在一个无div中,看起来你的代码对此不可用,我正在尝试修复它,但我在jquery和英语方面不太好:每当错误代码“Uncaught TypeError:Object”没有方法“CLICK”,而$(文档).click(函数(e){
不是$(document.body)。click(函数(e){
现在我得到它了:)$(document)。ready(函数(){var x=0;$('body')。click(函数(evt){if(evt.target.id==“info”)return;$(.div info-“+x”)。hide(“fast”);;$(.info btn”)。click(函数(e){$(“#div info”).hide(“fast”);x=$(this.attr(“data”);$(“.div info-”+x.fadeToggle(“fast”);})
@David,我已经发布了一个非常糟糕的演示,我没有看到,但你的代码也帮助我解决了我的问题:)谢谢你:你知道如何将.hide()
方法与.fadeToggle(“fast”)一起使用吗
动画?
$(".info-btn").click(function(e){
var x = $(this).attr('data');
$('.div-info-'+x).fadeToggle("fast");
});`
$(document.body).click(function(e){
if ((".info-btn").click())
{
var x = $(this).attr('data');
$('.div-info-'+x).fadeToggle("fast");
}
else (!(".info-btn").click())
{
var x = $(this).attr('data');
$('.div-info-'+x).fadeToggle("fast");
}
});
<a class="info-btn" data="1" href="#">INFO</a>
<div class="div-info-1">Sortierung der Kategorien wird automatisch drei mal täglich ausgeführt. Sortierung Ende Juni 2013 anpassen!</div>
$(".info-btn").click(function (e) {
var x = $(this).attr('data');
$('.div-info-' + x).show();
$(".info-btn").data('clickedDivId', '.div-info-' + x);
return false;
});
$(document).on('click', function (e) {
console.log('document clicked');
var target = e.target;
var clickedDiv = $(".info-btn").data('clickedDivId');
if (!$(target).is(clickedDiv) && !$(target).parents().is(clickedDiv)) {
$(clickedDiv).hide();
}
});