2013-07-23 455 views
0

任何人有一個想法,爲什麼我的jQuery點擊將無法正常工作?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/>"); 
    }); 
}); 
+0

哪個點擊不工作? – mor

+0

是不是隻[一分鐘前工作](http://stackoverflow.com/questions/17821368/jquery-keeps-posting-an-extra-message-each-time-i-click-submit)並導致你問題?或者它是新的$(「。delete」)。click line?如果你也可以提供你的html,這將是有幫助的。 – dc5

+0

你確定JavaScript是在HTML之後初始化的嗎?否則元素將不會被加載。 –

回答

5

由於刪除鏈接是動態生成的,你需要使用事件代表團:

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

你好嘗試修改您的jQuery的初始化是這樣的:

(function($){ }(jQuery) 

如果腳本依然不火的單擊事件,檢查是否$ messageForm存在使用的console.log($ messageForm) 。你可以在var messageForm中修改var $ messageForm,因爲我看到這個變量不需要這麼寬的範圍。我希望這能幫助你