我有一個表單提交消息。我想以AJAX
的方式提交。下面的代碼工作,但新添加「回覆」按鈕不起作用:如何使JavaScript工作,以響應以後以AJAX方式添加的按鈕
{% block body %}
<script type="text/javascript" src="{{ url_for('static', filename='jquery.form.js') }}"></script>
<script type="text/javascript">
// wait for the DOM to be loaded
$(document).ready(function() {
$("#message_form").ajaxForm(function() {
var messageid = '';
var messagepubdate = 0;
// GET NEWEST MESSAGE ID
$.getJSON($SCRIPT_ROOT + '/_get_new_message', function (data) {
messageid = data.messageid;
messagepubdate = data.messagepubdate;
//alert(messageid); //TESTED! the messageid is the newly added message's _id!
var div = document.createElement("div");
div.innerHTML = "<li><img src='{{ g.get_user(g.user._id).email|gravatar(size=48)}}'><p> " +
"<strong><a href='{{url_for('user_timeline', username=g.user._id)}}'>{{ g.user._id}}</a></strong> " + $('#new_message').val()
+ "<small>— " + messagepubdate + "</small><p align='right' style='text-align: right'><small><a href='#' data-messageid='#replies" + messageid + "' class='reply'>Reply</a></small></p><p><br /><div class='replies hidden' id='replies" + messageid + "'></div></p></p></li>";
$('ul#messages').prepend(div);
});
return false;
});
});
</script>
舊短信,下面的腳本能很好地切換的答覆DIV:
<script type=text/javascript>
$(function() {
$('a.reply').click(function() {
messageid = $(this).attr('data-messageid');
$(messageid).text('loading');
$.getJSON($SCRIPT_ROOT + '/_get_replies', { messageid: messageid.substring(8) }, function (data) {
$(messageid).html(data.result);
$(messageid).slideToggle(0);
});
return false;
});
});
</script>
現場已被棄用(因爲1.4.4版本!) – gdoron 2012-02-22 15:17:10
好吧,我會的。我不知道。它仍然可以工作,並且與'.on()'函數具有相同的原理。這是很好,如果jQuery的網站更明顯,除了標記爲'棄用' – Dutchie432 2012-02-22 15:29:45
請閱讀你添加的[文檔](http://api.jquery.com/live/),瞭解爲什麼'活着'是棄用。 – gdoron 2012-02-22 15:31:49