javascript - 谁能帮我弄清楚为什么我不能让 Jquery 摇动效果在我的 div 上工作?

标签 javascript jquery html css

我附上了我的问题所在的 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/

相关文章:

javascript - 从html点击事件中提取数据

javascript - For Loop/Each Loop变量存储和比较(jQuery或Javascript

html - 如何创建 css 渐变和阴影

javascript - 使一个 div 在焦点上 float 到另一个 div 的左侧

javascript - 单击图片打开文件上传对话框

javascript - 在对象数组中的嵌套对象数组中查找字符串

javascript - 三个 JS 创建自定义形状几何体

javascript - jquery ,我如何选择 attr href 目标隐藏

javascript - 如何从 ng-repeat 更改元素的类?

javascript - 模态类不适用于按钮