![](/img/trans.png)
[英]A string doesn't work to select an element (with jquery) after using .replace() on it
[英]Jquery - Select Element Using String
所以这是我的代码,如果一个窗口正在关闭,则将在给定类名.window
和唯一的窗口名(为每个不同的函数窗口准备)的情况下触发该函数。 该函数将查找具有与窗口相同的唯一名称的.taskbar-icon
,并删除类.active
,以告知用户窗口实际上已关闭。
窗口的唯一名称由我指定,并且一次只能有一个唯一的窗口,这意味着不应有两个具有相同唯一类名称的元素,例如.window.q
function disappearWindow(target) {
if(target.hasClass("q")) {
$(".taskbar-icon.q").removeClass("active");
}
if(target.hasClass("f")) {
$(".taskbar-icon.f").removeClass("active");
}
}
disappearWindow($(".window.q"));
如您在上面所看到的,每次插入一个新窗口时,都将给它一个类名,例如q
或ts
等,而不是使用上面的代码,我将不得不添加另一个语句,因为它不具有生产性并且浪费资源。
窗口仅应包含类window THE_ACTUAL_UNIQUE_NAME ui-draggable ui-resizable
。
所以我想要这样的事情:
function disappearWindow(target) {
$(".taskbar-icon" + NAME_FROM_FUNCTION_CALLING).removeClass("active");
}
有没有一种方法可以提取名称,从而使上面的代码可以减少“ hacky”并且更友好? 还是有其他建议可以做些其他事情以达到相同的结果?
我不介意更改名称。
如果我没有记错的话,那么我认为以下代码应该有效。
function disappearWindow(selectorStr) {
var activeClass = selectorStr.substr( selectorStr.lastIndexOf(".") + 1 );
var targetElemStr = ".taskbar-icon." + activeClass;
$(targetElemStr).removeClass("active");
}
disappearWindow(".window.q");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.