【问题标题】:jQuery buttons for FizzBuzz appFizzBu​​zz 应用程序的 jQuery 按钮
【发布时间】:2013-03-22 06:58:24
【问题描述】:

我正在使用 Rails 开发一个非常简单的 JavaScript FizzBu​​zz 应用程序,但我似乎无法让表单及其按钮正常工作。我知道这是非常粗糙的代码,其中一些是 HTML 和 JavaScript,而不是 Ruby,因为我更熟悉前两者而不是后者。

这是我的表格:

<p>In this field, put the starting number. It must be a positive integer <50.</p>
<form name="FizzBuzz Form">
<input type="text" name="fizzBuzzStart"/>
</form>
<div class="button" id="start">Add!</div><br>
<p>In this field, put the ending number. It must be a positive integer >50.</p>
<form name="FizzBuzz Form">
<input type="text" name="fizzBuzzEnd"/>
</form>
<div class="button" id="end">Add!</div><br><br>
<div class="button" id="play">Let's play!</div><br>

这是我的 script.js 文件:

$("#start").click(function(){
  var start = $("input[name=fizzBuzzStart]").val();});
$("#end").click(function(){
  var end = $("input[name=fizzBuzzStart]").val();});
$("#play").click(function(){
    for (var i=start; i<=end; i++) {
        if (i%15===0){console.log("FizzBuzz");}
            else if (i%3===0){console.log("Fizz");}
            else if (i%5===0){console.log("Buzz");}
            else {console.log(i);} }});});

任何建议将不胜感激!

【问题讨论】:

  • 一方面,您使用 fizzBu​​zzStart 两次,而不是 fizzBu​​zzStart 和 fizzBu​​zzEnd。另一方面,您应该告知您所看到的输出是什么。
  • 我什至没有注意到重复的 fizzBu​​zzStart。谢谢你抓住那个。我没有看到任何输出,因为我的按钮不起作用。那是你问的吗?感谢您尝试提供帮助。正如我所说,我对编码还是很陌生,真的不知道自己在做什么。

标签: jquery fizzbuzz


【解决方案1】:

主要问题是startend 被用作局部变量,因此一旦设置它们就会被有效地丢弃。将它们设为全局并修复 #end 点击处理程序中的字段名称拼写错误。

var start, end;

$("#start").click(function () {
    start = $("input[name=fizzBuzzStart]").val();
});

$("#end").click(function () {
    end = $("input[name=fizzBuzzEnd]").val();
});

$("#play").click(function () {
    for (var i = start; i <= end; i++) {
        if (i % 15 === 0) {
            console.log("FizzBuzz");
        } else if (i % 3 === 0) {
            console.log("Fizz");
        } else if (i % 5 === 0) {
            console.log("Buzz");
        } else {
            console.log(i);
        }
    }
});

演示:http://jsfiddle.net/fJyRb/

【讨论】:

  • 这不起作用,因为在输入值之前触发了单击处理程序,并且可以选择输入字段而无需单击(即使用 Tab),但您对 startend 超出了#play 点击处理程序的范围,所以不要投反对票。
  • @sberry 您是否注意到处理程序没有附加到输入字段,而是附加到它们下方的按钮?程序逻辑是您必须输入数字,然后单击“添加”以将值存储在变量中。不是非常用户友好或直观,但这就是 OP 所拥有的。
  • 感谢您对我的应用程序不太友好或不直观感到亲切。再说一次,对于我现在正在尝试的一切,我真的是个新手。我想知道我的变量的可访问性,但不太确定如何解决这个问题。我根据您的建议更新了我的 script.js 文件,但我的按钮仍然无法正常工作。
  • 你需要付出更多的努力。正如您从演示中看到的那样,我和 sberry 给出的代码是有效的,所以问题出在您没有向我们展示的地方。是的,我意识到这只是一种实践,所以如果它没有世界上最好的用户界面也没关系。
  • 我已将我的应用推送到 github this address
猜你喜欢
  • 2012-03-16
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
  • 2012-02-21
  • 2018-07-18
  • 2012-11-04
  • 2016-10-15
  • 2014-11-26
相关资源
最近更新 更多