【问题标题】:Trouble with javascript: drawing shapes at button clickjavascript的问题:在按钮单击时绘制形状
【发布时间】:2016-12-05 09:10:37
【问题描述】:

在我的作业开始时,我有一个网页,其中有一个要求输入数字的输入框,以及一个带有选择形状选项的下拉菜单。

下面是一个 SVG 容器,它将按照文本输入中指示的次数绘制该特定形状,但该形状应该只出现一次,因为我将所有迭代都绘制在同一位置,因此它们都重叠。

但无论如何,我的问题是我已经设置了所有内容,但是当我输入(文本输入中的数字和下拉菜单中的形状)时,它只是没有绘制形状。

当我选择选项 1(圆圈)时,它什么也不做

当我选择选项 2(正方形)时,它会画一个正方形

当我选择选项 3(三角形)时,它会绘制一个超小三角形,但我在代码中指定的大小应该至少与正方形一样大。

这是我的代码。我的错在哪里?

HTML:

<main>

<h1>Assignment 4 : Zap-em</h1>

<p>Difficulty: <input type="text" id="howmany"/></p>
<p>
    Shape: 
    <select id="shape">
        <option value="a">Circle</option>
        <option value="b">Square</option>
        <option value="c">Triangle</option>
    </select>
</p>
<button id="btn">Start</button>

<div id="svg1"></div>

</main>

Javascript:

var typed, shape;

draw = function() {
    typed = $('#howmany').val()
    shape = $('#shape').val()


    for ( count = 0; count < typed; count = count + 1) {

        if (shape == "a") {
            circle = paper.cicle(100, 100, 25)
        }
        if (shape == "b") {
            square = paper.rect(100, 100, 50, 50)
        }
        else {
            triangle = paper.path('M25,0 L50,50, L0,50 Z')
        }
    }
}    



setup = function() {
  paper = Raphael('svg1', 400, 400)
    $('button').click(draw)
}
jQuery(document).ready(setup)

【问题讨论】:

  • 可能是因为这个错误是由一个简单的错误引起的,只要自己调试就可以发现。
  • 我已经解决了这个问题。你能给我一个赞成票来取消反对票吗?
  • 不允许您更改问题以使答案无效。如果您继续这样做,版主将介入并锁定问题。

标签: javascript jquery html svg web


【解决方案1】:

您的代码中有一个非常简单的错误。一个拼写错误。 circle 的拼写不正确。如下所示进行正确处理,

circle = paper.circle(100, 100, 25)

然后一切都会好起来的。您可以使用 Firefox 浏览器中的 firebug 插件找到此类错误(特别是 js 错误)。它准确地指出了错误所在。

【讨论】:

  • 我刚刚修复了它,但它仍然无法正常工作。还有什么问题?
  • @JohnnySack 什么都没有,当我尝试您的代码并将cicle 更正为circle 时,它起作用了。您是否在控制台中查看过其他错误?喜欢缺少 jQuery 或 Raphael?另外,我做了一个小提琴,代码看起来有点不同,但这有效:jsfiddle.net/2b4ys3je
  • @JohnnySack 按照 Alex 的建议检查您使用的库。因为即使是我的小提琴也能很好地进行修正。
  • 我正在使用学校提供的 jquery 和 raphael 库,它适用于我过去完成的所有其他任务。我想知道为什么这次它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
相关资源
最近更新 更多