【问题标题】:jquery click does not workjquery点击不起作用
【发布时间】:2013-07-24 07:15:07
【问题描述】:

有人知道为什么我的 jQuery 点击不起作用?

它附加到一个超链接。

jQuery(function ($) {

    $(".delete").click(function(e) {
        alert("Hello");
    });

    var socket = io.connect();
    var $messageForm = $('#sendmessage');
    var $messageTitle = $('#title');
    var $messageBox = $('#message');
    var $chat = $('#chat');

    $messageForm.click(function (e) {
        if ($.trim($("#title").val()).length === 0) {
            alert('You must provide valid input');
            $messageTitle.val('');
            $messageBox.val('');
            return false;
        }
        if ($.trim($("#message").val()).length === 0) {
            alert('You must provide valid input');
            $messageTitle.val('');
            $messageBox.val('');
            return false;
        } else {
            e.preventDefault();
            socket.emit('send message', 
               '<b>' + $messageTitle.val() + '</b>' + '&nbsp;-&nbsp;'  
               + $messageBox.val() + '&nbsp;' + '[' +  
               '<a class="delete" href="#">Delete</a>' + ']');
            $messageTitle.val('');
            $messageBox.val('');
        }
    });

    socket.on('new message', function (data) {
        $chat.prepend(data + "<br/>");
    });
});

【问题讨论】:

标签: javascript jquery


【解决方案1】:

由于删除链接是动态生成的,所以需要使用事件委托:

$('#chat').on('click', '.delete', function(e) {
    alert("Hello");
});

【讨论】:

    【解决方案2】:

    您好尝试像这样修改您的 jquery 初始化:

    (function($){ }(jQuery)
    

    如果您的脚本仍然没有触发点击事件,请使用 console.log($messageForm) 检查 $messageForm 是否存在。您可以根据我看到的变量在 var messageForm 中修改 var $messageForm 不需要如此宽的范围。希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2016-05-22
      • 1970-01-01
      • 2011-08-17
      • 2013-09-10
      • 2017-01-21
      • 2017-11-14
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多