- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在我有一些代码可以生成 <li>
具有高度和宽度并应用了特定背景图像的元素。当用户按下某个键时,匹配的 css 类将被激活到创建的 <li>
上。在屏幕上创建某个 Angular 色..我有两个活跃的问题...
我想要在 <li>
之间生成一个空格键入空格键时。为此,我创建了一个空白 <li>
包含“ ”且类为“ejotyBlank”的元素。但由于某种原因,这对我不起作用!
当用户单击退格键时,最后一个 <li>
应该被删除。我什至不知道从哪里开始解决这个问题。
我现在正在做这一切,方法是创建一个数组并在每次按下键时添加到它,然后使用 for 循环生成所有 <li>
到页面上。
您可以在此页面上访问该页面及其操作:ImASpy.com/Ejoty单击“标题:”内部并开始输入字母。
我确信并非所有内容都适用,尤其是 CSS,但这也是我的代码......
非常感谢帮助我完成此任务的人!
这是我的 jQuery:
$(document).ready(function() {
var maxWidth = 0;
var titleArray = new Array;
var nameArray = new Array;
var i = 0;
var letterWidth;
$('#ejotyTitleInput').keypress(function(e)
{
var letterValue = String.fromCharCode(e.which);
if (e.which == 8) {
e.preventDefault();
alert('back space');
}
if(e.which==32){
var newNode = document.createElement("li");
$(newNode).addClass("ejotyBlank");
newNode.appendChild(document.createTextNode(" "));
titleArray[i] = newNode;
}
if (letterValue.match(/[a-zA-Z\.]/))
letterValue = letterValue.toUpperCase();
letterValue = "ejoty" + letterValue;
var newNode = document.createElement("li");
$(newNode).addClass(letterValue);
nameArray[i] = letterValue;
titleArray[i] = newNode;
i++;
maxWidth = 0;
letterWidth = 0;
for(var x = 0;x<=titleArray.length;++x){
var currentLI = titleArray[x];
$("ul#ejotyTitle").append(currentLI);
letterWidth += $("." + nameArray[x]).width() + 3;
var currentLetterWidth = $("." + nameArray[x]).width();
maxWidth = maxWidth + currentLetterWidth;
$("ul#ejotyTitle").css("width", letterWidth)
}
});
});
这是我的 HTML 代码:
<footer id="page1">
<h2>Now you try!</h2>
<form id="ejotyCreator">
<table>
<tr>
<td>Title:</td>
<td><input type="text" id="ejotyTitleInput" name="title" /></td>
</tr>
<tr>
<td>Text:</td>
<td><textarea name="ejotyText" cols="20" rows="2" id="ejotyText"></textarea></td>
</tr>
<tr>
<td>Signed:</td>
<td><input type="text" id="ejotySig" name="title"/></td>
</tr>
</table>
</form>
</footer><!-- end page1 footer -->
<section id="rightPage" class="clearfix">
<ul class="ejotyWriting clearfix">
<li class="ejotyT"></li>
<li class="ejotyH"></li>
<li class="ejotyI"></li>
<li class="ejotyS"></li>
<li> </li>
<li class="ejotyI"></li>
<li class="ejotyS"></li>
<li> </li>
<li class="ejotyE"></li>
<li class="ejotyJ"></li>
<li class="ejotyO"></li>
<li class="ejotyT"></li>
<li class="ejotyY"></li>
<li class="ejotyOther">-</li>
<li class="ejotyZ"></li>
<li>...</li>
</ul>
<br />
<br />
<div id="centerTitle">
<ul class="ejotyWriting clearfix" id="ejotyTitle">
</ul><!-- end title -->
</div><!--end centerTitle -->
<br />
<ul class="ejotyWriting clearfix" id="ejotyUserContent" >
</ul><!-- end ejotyContent -->
<br />
<ul class="ejotyWriting clearfix" id="ejotySigniature">
</ul><!-- end ejotyContent -->
</section><!-- end rightPage -->
这是我的 CSS:
/************* EJOTYZ CONTENT *************/
section, footer {
display: block;
}
table, tr, td {
margin: 0;
padding: 0;
}
form {
padding: 0;
margin: 0;
}
td.subtractMargin {
margin-top: 15px;
}
h2 {
color: #333;
margin: 0 0 0 0px;
padding: 0;
text-decoration: underline;
}
textarea {
resize: none;
margin: 0 0 -6px 10px;
padding: 5px;
}
input {
margin: 0 0 0 10px;
padding: 5px;
color: #000;
}
footer#page1 {
width: 260px;
height: 80px;
position: absolute;
top: 350px;
left: 45px;
}
section#rightPage {
width: 320px;
height: 390px;
position: absolute;
top: 15px;
left: 355px;
overflow: auto;
}
hr {
border-top-width: 2px;
border-top-style: dotted;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
border-top-color: #333;
border-right-color: #333;
border-bottom-color: #333;
border-left-color: #333;
width: 275px;
margin: -1px 0 15px 10px;
}
footer#page2 {
width: 270px;
height: 80px;
position: absolute;
top: 405px;
left: 395px;
}
ul#ejoty {
padding: 0;
margin: 0 0 0 35px;
}
ul#ejoty li {
list-style: none;
display: block;
float: left;
color: #000;
margin-right: 2px;
}
ul.ejotyWriting {
padding: 0;
margin: 0 0 0 5px;
}
ul.ejotyWriting li {
list-style: none;
display: block;
float: left;
color: #000;
margin-right: 2px;
}
h1.bookTitle {
color: #333;
margin-left: 15px;
}
ul#ejotyUserContent {
background: #3F9;
width: auto;
}
div#centerTitle {
padding: 0px 5px 5px 5px;
width: 300px;
text-align: center;
margin: 0 auto;
}
ul#ejotyTitle {
max-width: 300px;
margin: 0 auto;
}
/************* EJOTYZ LETTERS *************/
.ejotyBlank {
height:12px;
width:43px;
margin-top: 5px;
}
.ejotyOther {
height:12px;
}
.ejotyB{
height:12px;
width:34px;
margin-top: 5px;
background:url(images/ejoty.png) -50px 1px no-repeat;
}
.ejotyC{
height:12px;
width:27px;
margin-top: 5px;
background:url(images/ejoty.png) -90px 1px no-repeat;
}
.ejotyD{
height:12px;
width:19px;
margin-top: 5px;
background:url(images/ejoty.png) -123px 1px no-repeat;
}
.ejotyE{
height:12px;
width:10px;
margin-top: 5px;
background:url(images/ejoty.png) -149px 1px no-repeat;
}
.ejotyF{
height:12px;
width:43px;
margin-top: 5px;
background:url(images/ejoty.png) -1px -20px no-repeat;
}
.ejotyG{
height:12px;
width:35px;
margin-top: 5px;
background:url(images/ejoty.png) -49px -20px no-repeat;
}
.ejotyH{
height:12px;
width:27px;
margin-top: 5px;
background:url(images/ejoty.png) -90px -20px no-repeat;
}
.ejotyI{
height:12px;
width:19px;
margin-top: 5px;
background:url(images/ejoty.png) -124px -20px no-repeat;
}
.ejotyJ{
height:12px;
width:14px;
margin-top: 5px;
background:url(images/ejoty.png) -150px -20px no-repeat;
}
.ejotyK{
height:12px;
width:45px;
margin-top: 5px;
background:url(images/ejoty.png) -1px -44px no-repeat;
}
.ejotyL{
height:12px;
width:36px;
margin-top: 5px;
background:url(images/ejoty.png) -50px -44px no-repeat;
}
.ejotyM{
height:12px;
width:28px;
margin-top: 5px;
background:url(images/ejoty.png) -92px -44px no-repeat;
}
.ejotyN{
height:12px;
width:20px;
margin-top: 5px;
background:url(images/ejoty.png) -125px -44px no-repeat;
}
.ejotyO{
height:12px;
width:16px;
margin-top: 5px;
background:url(images/ejoty.png) -150px -44px no-repeat;
}
.ejotyP{
height:12px;
width:44px;
margin-top: 5px;
background:url(images/ejoty.png) -1px -66px no-repeat;
}
.ejotyQ{
height:12px;
width:36px;
margin-top: 5px;
background:url(images/ejoty.png) -49px -66px no-repeat;
}
.ejotyR{
height:12px;
width:28px;
margin-top: 5px;
background:url(images/ejoty.png) -92px -66px no-repeat;
}
.ejotyS{
height:12px;
width:20px;
margin-top: 5px;
background:url(images/ejoty.png) -125px -66px no-repeat;
}
.ejotyT{
height:12px;
width:16px;
margin-top: 5px;
background:url(images/ejoty.png) -151px -66px no-repeat;
}
.ejotyU{
height:12px;
width:44px;
margin-top: 5px;
background:url(images/ejoty.png) -1px -88px no-repeat;
}
.ejotyV{
height:12px;
width:36px;
margin-top: 5px;
background:url(images/ejoty.png) -49px -88px no-repeat;
}
.ejotyW{
height:12px;
width:28px;
margin-top: 5px;
background:url(images/ejoty.png) -92px -88px no-repeat;
}
.ejotyX{
height:12px;
width:20px;
margin-top: 5px;
background:url(images/ejoty.png) -124px -88px no-repeat;
}
.ejotyY{
height:12px;
width:16px;
margin-top: 5px;
background:url(images/ejoty.png) -151px -88px no-repeat;
}
.ejotyZ{
height:12px;
width:16px;
margin-top: 5px;
background:url(images/ejoty.png) 0px -109px no-repeat;
}
.ejotyA{
height:12px;
width:43px;
margin-top: 5px;
background:url(images/ejoty.png) -1px 1px no-repeat;
}
最佳答案
好吧,让我们重新开始这个乐趣。我已经对您的代码进行了一些调试和单步调试,并且发现了真正的问题。您没有将“ejotyBlank”类应用于新的 li 元素,因为在 ejotyz.html 的第 41 行,您正在消除上面定义的“newNode”值。将第 40-48 行更改为:
if (letterValue.match(/[a-zA-Z\.]/))
{
letterValue = letterValue.toUpperCase();
letterValue = "ejoty" + letterValue;
var newNode = document.createElement("li");
$(newNode).addClass(letterValue);
}
关于您的退格问题,我认为您必须以不同的方式解决它。您当前(初始启动)方法的问题在于您基本上假设退格键是在字符串末尾输入的。这可能不是一个有效的假设。在这种情况下,您不能只删除最后一个“字符” - 相反,您必须重建整个字符串。另外,据我所知,当您按退格键时,按键不会被触发。所以我会把它改为 keyup。您的 keyup 函数应使用从当前文本重建的新列表替换整个 UI 部分。如果您需要帮助编写函数来执行此操作,请告诉我。
完整的解决方案,如下所示 http://jsfiddle.net/LcbQn/3/
$(document).ready(function() {
$('#ejotyTitleInput').keyup(function(e) {
var fullString = $(this).val();
var maxWidth = 0;
var titleArray = new Array;
var nameArray = new Array;
var i = 0;
var letterWidth;
$("ul#ejotyTitle").empty();
for (var k=0;k<fullString.length;k++)
{
var letterValue = fullString.substr(k,1);
if(letterValue == ' '){
var newNode = document.createElement("li");
$(newNode).addClass("ejotyBlank").html(" ");
titleArray[i] = newNode;
nameArray[i] = "ejotyBlank";
} else if (letterValue.match(/[a-zA-Z\.]/))
{
letterValue = letterValue.toUpperCase();
letterValue = "ejoty" + letterValue;
var newNode = document.createElement("li");
$(newNode).addClass(letterValue);
nameArray[i] = letterValue;
titleArray[i] = newNode;
}
i++;
maxWidth = 0;
letterWidth = 0;
for(var x = 0;x<=titleArray.length;++x){
var currentLI = titleArray[x];
$("ul#ejotyTitle").append(currentLI);
letterWidth += $("." + nameArray[x]).width() + 3;
var currentLetterWidth = $("." + nameArray[x]).width();
maxWidth = maxWidth + currentLetterWidth;
$("ul#ejotyTitle").css("width", letterWidth)
}
} });});
关于javascript - 完成我的 jQuery 打字功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236921/
在带有 jQuery 的 CoffeeScript 中,以下语句有什么区别吗? jQuery ($) -> jQuery -> $ - > 最佳答案 第一个与其他两个不同,就像在纯 JavaScr
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭13 年前。 Improve th
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
这个问题可能听起来很愚蠢,但请耐心等待,因为我完全是初学者。我下载了两个 jQuery 版本,开发版本和生产版本。我想知道作为学习 jQuery 的初学者,什么更适合我。 最佳答案 如果您对 jQue
The documentation说要使用 1.6.4,但我们现在已经升级到 1.7.2。 我可以在 jQuery Mobile 中使用最新版本的 jQuery 吗? 最佳答案 您当然可以,但如果您想
我在这里看到这个不错的 jquery 插件:prettyphoto jquery lightbox有没有办法只用一个简单的jquery来实现这样的效果。 我只需要弹出和内联内容。你的回复有很大帮助。
很明显我正在尝试做一些 jQuery 不喜欢的事情。 我正在使用 javascript 上传图片。每次上传图片时,我都希望它可见,并附加一个有效的删除脚本。显示工作正常,删除则不然,因为当我用 fir
这两个哪个是正确的? jQuery('someclass').click(function() { alert("I've been clicked!"); }); 或 jQuery('somec
我正在寻找一个具有以下格式的插件 if (jQuery)(function ($) { -- plugin code -- })(jQuery); 我明白 (function ($)
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭10 年前。 Improv
我知道这个问题已经被问过几次了,但想知道您是否可以帮助我解决这个问题。 背景:我尝试创建一个使用 Ajax 提交的表单(jQuery 表单提交)。我已经工作得很好,然后我想在表单上得到验证。我可以使用
我正在使用无处不在的jquery validate plugin用于表单验证。它支持使用metadata plugin用于向表单元素添加验证规则。 我正在使用此功能。当验证查找这些规则时,它会对元素进
我更喜欢为我一直在开发的网络社区添加实用的视觉效果,但随着事情开始堆积,我担心加载时间。 拥有用户真的更快吗加载(希望是缓存的)副本来自 Google 存储库的 jquery? 是否使用 jQuery
这个问题已经有答案了: Slide right to left? (17 个回答) 已关闭 9 年前。 你能告诉我有没有办法在 jQuery 中左右滑动而不使用 jQuery UI 和 jQuery
我如何找出最适合某种情况的方法?任何人都可以提供一些示例来了解功能和性能方面的差异吗? 最佳答案 XMLHttpRequest 是原始浏览器对象,jQuery 将其包装成一种更有用和简化的形式以及跨浏
运行时 php bin/console oro:assets:build ,我有 11 个这样的错误: ERROR in ../node_modules/jquery-form/src/jquery.
我试图找到 jQuery.ajax() 在源代码中的定义位置。但是,使用 grep 似乎不起作用。 在哪里? 谢谢。 > grep jQuery.ajax src/* src/ajax.js:// B
$.fn.sortByDepth = function() { var ar = []; var result = $([]); $(this).each(function()
我的页面上有多个图像。为了检测损坏的图像,我使用了在 SO 上找到的这个。 $('.imgRot').one('error',function(){ $(this).attr('src','b
我在理解 $ 符号作为 jQuery 函数的别名时遇到了一些麻烦,尤其是在插件中。你能解释一下 jQuery 如何实现这种别名:它如何定义 '$' 作为 jQuery 函数的别名?这是第一个问题。 其
我是一名优秀的程序员,十分优秀!