我正在用jquery编写一个消息传递系统。当您单击类为".open_message"的线程标题时,它会通过Ajax打开一个包含该线程所有消息的线程。我的问题是,当点击线程标题时,它无法识别firefox和IE中特定线程标题的id属性。不过,它在chrome中运行良好。这是代码:
$('.open_message').on('click', function(e) {
$(this).parent().removeClass('unread');
$(this).parent().addClass('read');
$('.message_container').html('');
var theID = e.currentTarget.attributes[0].value;
theID = theID.replace('#', '');
var url = '".$url."';
var dataString = 'thread_id=' + theID;
$('.message_container').append('<img id="loading" src="' + url + '/images/loading.gif" width="30px" />');
$.ajax({
type: 'POST',
url: 'get_thread.php',
data: dataString,
success: function(result) {
$('#loading').hide();
$('.message_container').append(result);
}
});
return false;
});
谢谢你的帮助!
在单击事件中,可以使用this.id
访问元素id。所以以下应该是一个开始。。。
$('.open_message').on('click', function(e) {
var dataString = 'thread_id=' + this.id,
url = '".$url."';
$(this).parent().removeClass('unread').addClass('read'); // Combine for speed
$('.message_container').html('').append( etc...
etc...
});
我承认你的var url = '".$url."';
在我看来很不稳定,但我认为这一点还可以;)
您也可以使用$.post
(如这里所示)。