Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么.hasClass函数不起作用?_Javascript_Css - Fatal编程技术网

Javascript 为什么.hasClass函数不起作用?

Javascript 为什么.hasClass函数不起作用?,javascript,css,Javascript,Css,因此,当我点击name(class='frnd'),然后打开一个窗口,它可以拖动,但当我再次点击(class=frnd)时,它们会再次打开新窗口,例如,如果我点击Simon,会弹出新窗口,点击一次后,它可以拖动,我再次点击name(class='frnd'(Simon))它又弹出了一个窗口。问题:我不希望如果窗口已经打开,它不会再次打开同一个窗口 为了避免这个问题,我在js中尝试了这段代码 if(!($("#windows").hasClass('.5647383'+id))){

因此,当我点击name(class='frnd'),然后打开一个窗口,它可以拖动,但当我再次点击(class=frnd)时,它们会再次打开新窗口,例如,如果我点击Simon,会弹出新窗口,点击一次后,它可以拖动,我再次点击name(class='frnd'(Simon))它又弹出了一个窗口。问题:我不希望如果窗口已经打开,它不会再次打开同一个窗口

为了避免这个问题,我在js中尝试了这段代码

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()
没有为类使用句点前缀-这是选择器语法。因此:

  • var hwindow_div=$('.5647383'+id)
    将找到您的.hwindow div
  • hwindow\u div.hasClass('5647383'+id)
    检查它是否具有该类


另外,虽然这是一个单独的问题,@marekful关于
#id
语法是正确的。

'.+id
应该是
'.+id
。我试图在代码段中完成它,但它可以检查我的剪辑。对不起,我不明白你的意思…把你的支票改成
如果($(“#windows”).hasClass('5647383'+id))
,它应该可以工作(至少看看
#windows
是否有那个类)。哦,我忘了在第一条评论中写下链接。Sorry我看到…
hasClass()
检查它所针对的元素,但您想检查它的后代。尝试
if($(“#windows”).find('.5647383'+id).length){
.lol可以工作,但在这里会产生更多问题。如果有其他问题,请检查我的更新和新代码笔。将其与第一个进行比较。我不知道您的意思是相同的,但在单击名称(右上方)后的第二个代码平移中,会出现一个更大的框,名称相同(左上)并可通过标题栏(顶部的鲜红色条)拖动。