0

我试图让我的 fizzbuzzz 解决方案在“单击”时运行并在容器中的代码标记之间显示,但是当我在 div 内单击时没有打印出来,我不知道为什么。

对于我的功能,我有:

function fizzbuzz(){
    for (var i = 1; i < 101; 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);
            }
        }
    }

对于我的 index.html 视图,我有这个:

  <div id="results" class="container text-center">
    <p>Click to view the results of the function we just wrote: </p>
    <code></code>
  </div>

对于我的 jQuery 脚本,我有:

$("#results").click(function() {
  fizzbuzz();
});

我究竟做错了什么?我将不胜感激任何反馈:)

4

4 回答 4

1

.onClick 是错误的。使用 .click 代替:(http://api.jquery.com/click/

$("#results").click(function() {
  fizzbuzz();
});
于 2013-10-31T23:34:20.093 回答
1

嗯,标签没有特殊含义<code>,您所做的任何事情都不会将代码放在那里。您可能正在寻找的是更接近此的东西:

<div id="results" class="container text-center">
    <p>Click to view the results of the function we just wrote: </p>
    <span id="fizzbuzz"></span>
</div>

具有以下功能:

$(document).ready(function() {
function fizzbuzz(){
    elt = $('#fizzbuzz'); // find the element
    elt.empty(); // clear out anything that's there already
    for (var i = 1; i < 101; i++){
        if ((i % 15) === 0) {
            elt.append('FizzBuzz'); // append text
            } else if ((i % 3) === 0){
            elt.append('Fizz');
            } else if ((i % 5) === 0){
            elt.append('Buzz');
            } else {
            elt.append(i);
            }
        elt.append(" "); // add a space
        }
    }

$("#results").click(function() { // use .click(... or .on('click'..., not .onClick
  fizzbuzz();
});
});
于 2013-10-31T23:38:05.973 回答
0

或者你可以试试

$("#results").on('click', function() {
    fizzbuzz();
});
于 2013-10-31T23:36:56.650 回答
0

如果失败,您可以尝试:

$("#results").bind('click', function() {
    fizzbuzz();
});
于 2013-10-31T23:42:21.523 回答