任何人都知道为什么我的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>' + ' - '
+ $messageBox.val() + ' ' + '[' +
'<a class="delete" href="#">Delete</a>' + ']');
$messageTitle.val('');
$messageBox.val('');
}
});
socket.on('new message', function (data) {
$chat.prepend(data + "<br/>");
});
});
答案 0 :(得分:5)
由于删除链接是动态生成的,因此您需要使用事件委派:
$('#chat').on('click', '.delete', function(e) {
alert("Hello");
});
答案 1 :(得分:0)
你好试着像这样修改你的jquery初始化:
(function($){ }(jQuery)
如果您的脚本仍未触发click事件,请使用console.log($ messageForm)检查$ messageForm是否存在。您可以在var messageForm中修改var $ messageForm,因为我看到变量不需要如此宽的范围。我希望这可以帮到你