我为编程项目创建了一个Etch A Sketch。默认按钮会添加行,但屏幕上不显示任何内容,但开发工具会将行显示为正在创建。我还试过改变边距,填充等等。此外,按钮的第二组事件永远不会被正确触发,它只会将所有行突出显示为黑色而不是允许我在将鼠标悬停在它们上方时更改它们。 https://lettda.github.io/EtchAsketch/
更新:显示已解决('。'在删除html的newRow前面),修复悬停事件是唯一的问题
$(document).ready(function () {
var i;
function gridCreate (){
$('.grid').empty();
var userNum = prompt("How big do you want your grid?");
for (var i = 0; i < userNum; i++) {
$('.grid').append("<div class = 'newRow'></div>");
}
for (var i = 0; i < userNum; i++) {
$('.newRow').append("<div class='square'></div>");
}
var newWidth = $('.square').width() * i;
$('.newRow').width(newWidth);
$('.grid').width($('.newRow').width());
var newHeight = $('.square').height() * i;
// $('.newRow').height(newHeight);
$('.grid').height($('.newRow').height());
};
$('.normal').on("click", function(){
gridCreate();
// $('.square').unbind();
$('.square').on("hover", function(){
$(this).css('background-color', 'red');
});
});
});
CSS:
.grid {
margin: 50px auto 0 auto;
border: 1px solid black;
}
.newRow {
margin-left: 0 !important;
margin-right: 0 !important;
}
.square {
height: 1.5rem;
width: 1.5rem;
background-color: black;
display: inline-block;
margin: 0px;
}
.navbar-brand {
text-align: center;
float: none !important;
}
.navButtons {
margin: 0 auto;
text-align: center;
}
答案 0 :(得分:2)
所以这里有一些问题。
class='myClassName'
没有任何点,只用一个&#39;执行jQuery查找。&#39;。squares
似乎是一行。请参阅下面的潜在CSS解决方案。i
乘以生成维度并不会破坏任何内容,但代码不应该依赖于JS中的古怪问题,我建议更明确并参考已在范围中定义的userNum
变量。 squares
后添加侦听器。hover
不是真实的事件类型。您想要使用jQuery&#39; .hover()
这里有一些替代JS我建议。
$(document).ready(function () {
function gridCreate (){
$('.grid').empty();
var userNum = prompt("How big do you want your gid?");
for (var i = 0; i < userNum; i++) {
$('.grid').append("<div class ='newRow'></div>");
}
for (var i = 0; i < userNum; i++) {
$('.newRow').append("<div class='square'></div>");
}
var newWidth = ($('.square').width()+10) * userNum;
$('.newRow').width(newWidth);
$('.grid').width($('.newRow').width());
var newHeight = $('.square').height() * userNum;
$('.grid').height($('.newRow').height());
$('.square').hover(function(){
$(this).css('background-color', 'red');
});
};
$('.normal').on("click", function(){
gridCreate();
});
});
要解决square
间距问题,您还需要为它们添加一些边距,以便它们看起来不像一个长黑条。
.square { margin:0 5px;}