jQuery单击(function()不起作用,但纯Javascript工作正常

时间:2012-03-23 23:21:15

标签: javascript jquery

这是完整的脚本

http://goo.gl/HoCxk

我对此功能有疑问:

    $('.message').click(function(){
    alert("it works");
    var clicked_msg=$(this);
    $('#current_message').html(clicked_msg.attr("id"));
});

如果不是上面的内容,我添加一个onclick =“msgClicked()”,然后执行以下操作:

function msgClicked(){
var x=document.getElementById("current_message");alert("it works");x.innerHTML("test");}

jQuery库显然是导入的,因为其他一切都是使用jQuery框架完成的,而消息传递系统上实现的所有其他函数都是jQuery。一切都很完美,但出于某种原因,我无法弄清楚这个有什么问题。

如果您有任何人愿意提供帮助而且您需要查看实际情况,请告知我们,我将在我的网站上为您创建一个帐户。从内容中删除所有保护将花费很长时间。

1 个答案:

答案 0 :(得分:2)

你好吗?

通常这些小烦恼都是因为:

  • 你犯了一个拼写错误(例如.message在JS或HTML中拼错了)
  • 您正尝试将此功能分配给尚未创建的元素

可以肯定的是,试试这个:

alert($('.message').length)
$('.message').click(function(){
    alert("it works");
    var clicked_msg=$(this);
    $('#current_message').html(clicked_msg.attr("id"));
});

如果它输出0,那是因为上面两个问题之一可能正在发生,然后试试这个:

$(function(){
    alert('The page loaded!');
    alert('.message elements in page: ' + $('.message').length);
    $('.message').click(function(){
        alert("it works");
        var clicked_msg=$(this);
        $('#current_message').html(clicked_msg.attr("id"));
    });
});

如果你没有得到任何警告信息,你的jQuery导入有问题,可能是冲突(比如包括jQuery两次!)

如果页面中的.message元素大于0,那么这是第二个问题(您试图将.click事件分配给尚未创建的元素)

如果它仍然显示0个元素,那么就没有创建类“message”的元素。

我希望这能指出你正确的方向。

干杯!