【问题标题】:increase the counter in jQuery增加jQuery中的计数器
【发布时间】:2012-07-25 00:55:10
【问题描述】:

计数器不工作

mypost 是输入值

$("#post").click(function() {
    var cont = 0;
    value = $("#mypost").val()
    $("#1").append(value);
    $("#mypost").val('');
    var like = $('<button>like</button>', {
        click: function() {
            cont++;
            $('#1').append(cont);
        }
    });
    $('#1').append(like);
    $('#1').append('</br>');
});​

【问题讨论】:

  • 与其说“不工作”,不如告诉我们它做了什么以及你期望它做什么
  • 我认为您不能拥有以数字开头的 ID。
  • @sachleen - 在 HTML5 中可以。
  • jsfiddle.net/um3MU 这是小提琴
  • 您只是使用了错误的 API,但在您的辩护中,jQuery 的方法/函数有时会以令人困惑的方式重载。要传递第二个参数,您需要创建类似$("&lt;button&gt;", your_props) 的元素,并将text: "like", 添加到道具中。 jQuery 函数因过多的行为而重载,包括这两种不同的创建元素的方式。

标签: javascript jquery counter


【解决方案1】:

将事件侦听器作为属性添加到$("&lt;tag /&gt;") 构造函数中时未正确连接。 (尽管有documentation for $() mentioning events in the props.。我相信它与未连接到 DOM 的元素有关;猜测。)

使用.click(function) 将其添加到以下行时似乎可以工作。

var like = $('<button>like</button>')
    .click(function() {
        cont++;
        $('#1').append(cont);
    });

编辑:错过了使用.val() 读取#mypost 的事实。更新了 jsfiddle 以使用 &lt;input /&gt;

http://jsfiddle.net/joelpurra/bJa29/

【讨论】:

    【解决方案2】:

    不确定这是否会有所帮助,但 ID 必须以字母开头。

    ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,并且可以是 后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、 下划线(“_”)、冒号(“:”)和句点(“.”)。

    更多信息请参见here (http://www.w3.org - Basic HTML data types)

    【讨论】:

    • 不正确。这个限制在 HTML5 中被移除,并且不被任何浏览器强制执行。
    • jQuery 可以在没有字母的情况下工作。此外,在 HTML5 中删除
    猜你喜欢
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多