我附上了我的问题所在的 JSfiddle。除了抖动效果外,单击按钮的其他所有功能都有效,我似乎无法弄清楚为什么?我试过改变它等等,但它还是不行?
https://jsfiddle.net/g8t5ts8x/
$(document).ready(function() {
for(var i = 0; i < 16; i++) {
for(var j = 0; j < 16; j++) {
$('#grid').append('<div class= square></div>');
};
};
$(".square").mouseenter(function() {
$(this).css("background-color", "#7fffd4");
});
//clears the canvas and resets the color on hover back to #7fffd4//
$("#clear").click(function() {
$("#grid").effect("shake", {times:4}, 1000);
$(".square").css("background-color", "white");
$(".square").mouseenter(function() {
$(this).css("background-color", "#7fffd4");
});
});
//creates a random color for each square when button is clicked//
$("#randomcolor").click(function() {
$(".square").mouseenter(function() {
var randomColorChange = '#'+ (Math.random()*0xFFFFFF<<0).toString(16);
$(this).css('background-color', randomColorChange);
});
});
});
* {
margin: 0;
padding: 0;
border: 0;
box-sizing: border-box;
}
body {
font-family: Arial, sans-serif;
background-color: white;
}
h1 {
color: white;
padding-top: 8px;
padding-bottom: 8px;
text-align: center;
background-color: #191919;
}
span {
text-decoration: underline;
color: #7fffd4;
}
.buttons {
padding-top: 10px;
text-align: center;
width: 480px;
margin: 0 auto;
}
#clear, #randomcolor {
margin: 5px;
padding: 8px;
border-radius: 1px;
background-color: #191919;
color: white;
}
.container {
margin-top: 20px;
}
#grid {
width: 484px;
height: 484px;
margin: 10px auto;
border: 2px solid black;
box-shadow: 2px 2px 30px 10px grey;
}
.square {
width: 30px;
height: 30px;
margin: 0px;
float: left;
background: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"> </script>
<h1>Etch A <span>Sketch</span></h1>
<div class="buttons">
<button id="clear">Reset Canvas</button>
<button id="randomcolor">Random Colors</button>
</div>
<div class="container">
<div id="grid"></div>
</div>
谢谢!
最佳答案
$('selector').effect()
是一个 jQueryUI 功能。你的 fiddle 没有引用 jQueryUI 库。
包括对 CDN 源的引用,例如:
https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js
当我将这些添加到您的 fiddle 时,我看到点击时按钮不稳定。
我发现检查 JQuery 基础和 JQuery UI 之间的分离是我自己的代价,并且不做任何假设。如果您在许多情况下引用未知方法,JQuery 会吞下您的错误,因此,如果您发现您期望发生的事情没有发生,并且它是 UI 效果,那么请检查您的假设。
关于javascript - 谁能帮我弄清楚为什么我不能让 Jquery 摇动效果在我的 div 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42259832/