Javascript 为什么.hasClass函数不起作用?
因此,当我点击name(class='frnd'),然后打开一个窗口,它可以拖动,但当我再次点击(class=frnd)时,它们会再次打开新窗口,例如,如果我点击Simon,会弹出新窗口,点击一次后,它可以拖动,我再次点击name(class='frnd'(Simon))它又弹出了一个窗口。问题:我不希望如果窗口已经打开,它不会再次打开同一个窗口 为了避免这个问题,我在js中尝试了这段代码Javascript 为什么.hasClass函数不起作用?,javascript,css,Javascript,Css,因此,当我点击name(class='frnd'),然后打开一个窗口,它可以拖动,但当我再次点击(class=frnd)时,它们会再次打开新窗口,例如,如果我点击Simon,会弹出新窗口,点击一次后,它可以拖动,我再次点击name(class='frnd'(Simon))它又弹出了一个窗口。问题:我不希望如果窗口已经打开,它不会再次打开同一个窗口 为了避免这个问题,我在js中尝试了这段代码 if(!($("#windows").hasClass('.5647383'+id))){
if(!($("#windows").hasClass('.5647383'+id))){
$html = '<div class="mwindow "><div class="hwindow 5647383'+id+'">'+usr+'<span class="cls">x</span></div><div class="msgbody '+id+'"><div id="mstd"class= umsg'+id+'></div><div id="tarea"><form method="post"><textarea class="ctarea" name="'+id+'"></textarea></form></div></div></div>';
$('#windows').append($html);
}
正文{
保证金:0;
背景色:#999;
高度:700px;
}
第一夫人{
文本对齐:居中;
宽度:50px;
高度:20px;
显示:内联块;
背景色:#9B59B6;
保证金:5px;
边框:4px实心#3498DB;
颜色:#F1C40F;
光标:指针;
浮动:对;
}
mwindow先生{
位置:固定;
宽度:220px;
高度:220px;
边框:5px实心#16a085;
背景色:#fff;
显示:块;
保证金:5px;
边界半径:10px;
}
mwindow:悬停{
z指数:9999;
}
hwindow先生{
宽度:210px;
高度:25px;
背景色:#FF4500;
填充物:5px;
显示:块;
边际:0px;
边框左上半径:5px;
边框右上角半径:5px;
}
.cls{
显示:内联块;
浮动:对;
光标:指针;
字体大小:20px;
字体大小:粗体;
}
msgbody先生{
位置:相对位置;
高度:185px;
背景色:#FF4500;
//z指数:9999;
}
克塔雷亚先生{
位置:绝对位置;
宽度:210px;
调整大小:无;
大纲:无;
顶部:133px;
字体大小:15px;
填充物:5px;
最小高度:40px;
不透明度:0.9;
边界:无;
边框顶部:2个实心#ff0000;
}
#mstd{
位置:绝对位置;
宽度:220px;
高度:133px;
背景色:#bb4500;
不透明度:1;
溢出x:隐藏;
}
最大值
约翰
亨利
最大值
西蒙
元素的ID属性是使用hashmark符号选择的,因此
'.+id
应该是'#'+id
点符号(.)根据元素的类名选择元素
编辑
您还遇到了许多其他问题,请查看已审阅的代码:
问题是
hasClass()
没有为类使用句点前缀-这是选择器语法。因此:
将找到您的.hwindow divvar hwindow_div=$('.5647383'+id)
检查它是否具有该类hwindow\u div.hasClass('5647383'+id)
另外,虽然这是一个单独的问题,@marekful关于
#id
语法是正确的。'.+id
应该是'.+id
。我试图在代码段中完成它,但它可以检查我的剪辑。对不起,我不明白你的意思…把你的支票改成如果($(“#windows”).hasClass('5647383'+id))
,它应该可以工作(至少看看#windows
是否有那个类)。哦,我忘了在第一条评论中写下链接。Sorry我看到…hasClass()
检查它所针对的元素,但您想检查它的后代。尝试if($(“#windows”).find('.5647383'+id).length){
.lol可以工作,但在这里会产生更多问题。如果有其他问题,请检查我的更新和新代码笔。将其与第一个进行比较。我不知道您的意思是相同的,但在单击名称(右上方)后的第二个代码平移中,会出现一个更大的框,名称相同(左上)并可通过标题栏(顶部的鲜红色条)拖动。