- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
关于这些 ID
我添加了一个名为.selected 的类。我编写代码的方式照原样工作得很好。但是,当我从这些 ID 中删除 selected 时,我将不得不添加新的 CSS 并将“display: none”添加到任何相应的视口(viewport)容器中:
我确实意识到我可以创建一些 if 语句,但我也想学习一些可以帮助我的新方法/函数。我喜欢的一件事是清晰易读的高效代码。所以拥有一堆不需要的检查和循环不是我的目标。
基于我选择使用 toggle() 和 toggleClass() 的方法不能很好地一起通信(在我的代码中)尝试手动删除时.selected class 而无需手动添加 display: none 到我的 ID 容器 div。
我想手动删除 .selected 类的原因是我可能想更改应用加载时打开的默认 ID 容器。
有人愿意就如何处理这个问题提出一些不同的想法吗?
My Editable code on CSSDeck < 基本上像 jsfiddle 或 jsbin。
$('.code-container').css('height', $(window).innerHeight() - 39 + "px");
$(window).resize(function () {
$('.code-container').css('height', $(window).innerHeight() - 39 + "px");
});
$("[id$=button]").click(function () {
$(this).toggleClass('selected');
// creates the name of a viewport ID. "view-" + html of button
var viewID = "#" + $(this).html() + "-container";
$(viewID).toggle();
var viewSize = $(window).innerWidth()/$('.selected').length;
$(".code-container").css("width", viewSize);
}
);
$('#run').click( function() {
var html = $('#htmlCode').val();
var css = $('#cssCode').val();
var js = $('#jsCode').val();
$('#iframe').contents().find("html").html("<style>" + css + "</style>" + html);
});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Code Player</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div id="wrapper">
<div id="header">
<p id="logo">CodePlayer</p>
<nav>
<ul>
<li id="html-button" class="toggle selected no-highlight">html</li>
<li id="css-button" class="toggle selected no-highlight">css</li>
<li id="js-button" class="toggle selected no-highlight">js</li>
<li id="result-button" class="toggle selected no-highlight">result</li>
</ul>
</nav>
<div id="run" class="no-select">Run</div>
</div>
<div id="html-container" class="code-container">
<div class="code-label">HTML</div>
<textarea id="htmlCode"></textarea>
</div>
<div id="css-container" class="code-container">
<div class="code-label">CSS</div>
<textarea id="cssCode"></textarea>
</div>
<div id="js-container" class="code-container">
<div class="code-label">JS</div>
<textarea id="jsCode"></textarea>
</div>
<div id="result-container" class="code-container">
<div class="code-label">Result</div>
<iframe id="iframe"></iframe>
</div>
</div>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
/* Global Settings */
* { padding: 0; margin: 0;}
body {
font-size: 14px;
font-family: sans-serif;
}
.no-highlight {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/* Header Logo Toggles and Buttons */
#header {
width: 100%; height: 28px;
background-color: #222;
padding: 4px;
}
#header #logo {
color: #fff;
font-weight: 500;
position: absolute;
left: 10px; top: 4px;
font-size: 1.5em;
line-height: 28px
}
#header nav {
width: 226px; height: 28px;
margin: auto;
}
/* Look and Feel of buttons */
#header li, #run {
width: 50px; height: 26px;
background-color: #000;
color: #aaa;
border: 1px solid #00a2ff;
border-radius: 6px;
font-size: .8em;
text-transform: uppercase;
line-height: 26px;
text-align: center;
list-style: none;
float: left;
cursor: pointer;
}
/* ads margin ONLY between li elements */
#header li+li {
margin-left: 6px;
}
/* Run button positioning */
#run {
position: absolute;
right: 10px; top: 4px;
}
/* special class to differentiate toggled buttons */
#header .selected, #header #run {
background-color: #000;
color: #fff;
}
/* end of Button styling */
/* code-container is the html, css, js and result viewports */
.code-container {
width: 25%;
float: left;
position: relative;
display: none;
}
/* textarea for user input of code */
.code-container textarea {
width: 100%; height: 100%;
padding: 18px 3px 3px 3px;
font-size: 1.2em;
border-right: 1px solid #222;
font-family: monospace;
box-sizing: border-box;
}
/* viewport name */
.code-label {
position: absolute;
top: 5px; right: 5px;
}
/* viewport for the code output result */
iframe {
width: 100%; height: 100%;
border: none;
}
最佳答案
你的方法很好。尽管如此,在您的认识中仍有一些可以改进的地方。
这是我的建议:
data-pane
属性。您也可以使用 id
(如果您去除 "-button"
子字符串).container
元素,并在引导您的应用程序时显示所有带有 “selected”
按钮的 Pane HTML
出于演示目的,我删除了第一项的 selected
类。我还添加了 data-pane
属性:
<li id="html-button" class="toggle no-highlight" data-pane="html">html</li>
<li id="css-button" class="toggle selected no-highlight" data-pane="css">css</li>
<li id="js-button" class="toggle selected no-highlight" data-pane="js">js</li>
<li id="result-button" class="toggle selected no-highlight" data-pane="result">result</li>
CSS
我添加了display: none;
.code-container {
width: 25%;
float: left;
position: relative;
display: none;
}
JS
我重写了它的主要部分,但这里只有新的部分。
这显示了应用程序启动时选择的所有 Pane :
$('.selected').each(function() {
var pane = $(this).data('pane');
showPane(pane);
});
这为您提供了决定切换内容所需的信息:
var pane = $(this).data('pane');
var isSelected = $(this).hasClass('selected');
if(isSelected) {
hidePane(pane);
} else {
showPane(pane);
}
这些是新的显示和隐藏功能。它们捆绑了更新 View 所需的所有操作:
function showPane(pane) {
$('#' + pane + '-button').addClass('selected');
$('#' + pane + '-container').show();
updateContainers();
}
function hidePane(pane) {
$('#' + pane + '-button').removeClass('selected');
$('#' + pane + '-container').hide();
updateContainers();
}
function updateContainers() {
var viewSize = $(window).innerWidth() / $('.selected').length;
$(".code-container").css("width", viewSize);
}
如您所见,不需要手动display: none;
。
关于javascript - 修改我的代码 : currently using toggle() and toggleClass(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988942/
这个问题已经有答案了: Where has fn.toggle( handler(eventObject), handler(eventObject)...) gone? (4 个回答) 已关闭10
有没有直接的使用方法--toggle和 --no-toggle使用 Python 的 argparse 标记? 现在我正在使用类似于以下内容的东西: import argparse parser =
我正在尝试实现 jquery UI 切换功能。 这是我目前所拥有的: http://jsfiddle.net/PauWy/470/ 我试图做到这一点,当我点击 Item1 时,会出现“+”和“-”,我
现在 toggle(...) 是 deprecated in jQuery 1.8然后removed in jQuery 1.9 在常规中可以使用什么(除了使用 jQuery 迁移脚本)来代替具有相同
我在使用 bootstrap 的切换功能时遇到问题。 这个想法是让一个复选框(引导切换)打开或关闭第二个复选框(引导切换)。遗憾的是,它尚未在网页上运行。我注意到,通过删除“data-toggle='
我有一些 DIV,我正在使用 JQuery 使用 toggle() 函数来隐藏和显示它们。这一直运行良好。 但我只是认识到其中一些 DIV 之间的一些关系,这使我可以将其中一些 DIV 分组到一个类中
我想要三个 SwiftUI 切换开关,如果一个打开,另外两个关闭。 使用 UIKit 执行此类操作的旧方法是 didSet{},这不是 SwiftUI 的正确方法。我不知道是否有必要深入研究Combi
我想做的是:当达到一定数量的页面滑动时,使网站的顶部栏向下切换。即,当用户向下滑动 328px 时,顶部栏向下滑动并固定在顶部。 问题是当用户向下滑动到328px的时候,top bar div就开始上
上下文 我正在使用 Bootstrap 主题,现在我注意到,当主题更新到 Bootstrap 5 时,所有 data-toggle 属性都被替换为 data-bs-toggle (除了一个,哪个元素仍
我有一个来自 Bootstrap 示例的“标准”测试导航栏,但是使用 active_links gem导航栏 => 品牌 - 关于 - 第 1 页 - 第 2 页 - 页面(第 3 页 - 第 4 页
我只是无法理解 Eclipse 中菜单的 Run 按钮下的两个选项。通常断点不是指一行吗?我意识到可能存在这种情况: if (x >= 0 && x = 0 && y < 4) source
如果有任何反馈或见解可以帮助我解决我面临的最后一个问题,我将不胜感激。我的代码很庞大。 我有 4 个开关。打开时的每个切换都会导致标签增加 1。当我关闭并重新打开应用程序时,我还设法保存了切换位置和标
我目前正在开发一个侧边栏菜单,在该菜单中我切换类别上的“选定”类别,该类别的类别名称为“sidebar-category”。 使用 jQuery,我可以轻松实现我想要的目标:切换“选定”类后(如果我单
我正在尝试玩周围的游戏,但我对 jquery 完全是新手!所以我确实需要一些帮助:) $(function() { $('#switch').on('click', function(
所以我需要下面的当前脚本,以便能够切换。 目前,该脚本仅在按住 F8 键时起作用...这违背了 afk 脚本的要点。哈哈 无论如何,这是脚本: $F8:: Loop { if not Get
在创建 jQuery 下拉菜单时,我遇到了一个最奇怪的问题 - 已隐藏的元素仍然影响页面。为什么会发生这种情况,我该如何解决?它通过阻止按钮的一部分来影响功能,迫使人们从未阻止的部分调用该功能。例如;
我有一个 Logo ,当单击菜单时,字母 T 和 H 以及字母 animatie 彼此相距约 400px。当他们制作动画时,导航会出现:eas-in,但是当我再次单击汉堡菜单时,我希望导航以相同的动画
我正在尝试为“事件”CSS 类切换“禁用”,以使某些 SVG 的填充属性在单击时发生变化。 我能够正确更改第一个元素,但是当尝试对第二个和第三个 SVG 进行相同更改时,它会更改第一个 div 中第一
我有一个小的下拉列表,其中包含从 0 到 4 的数字(我可以添加更多),例如数字 4 是 4 年的数据。如果我选择 4,我会得到 4 行日期选择器,供用户选择开始和结束日期。 它使用 for 循环,并
我有几个 powershell 函数,可以执行诸如检查程序是否打开然后关闭之类的操作。或者,如果程序关闭,该函数将打开它。这些函数被恰本地命名为Toggle-Something。我在 Windows
我是一名优秀的程序员,十分优秀!