我有一個AJAX方法,正在點擊的鏈接觸發DELETE方法,但儘管有我的jQuery工作一次,我沒有達到點AJAX方法是被觸發並且不能確定代碼有什麼問題。這可能是由於未捕獲的語法錯誤。 onload console.log會觸發,所以我知道該文件正在被識別,但點擊中的console.log不會觸發。另外,這是觸發DELETE方法的最好方法嗎?jQuery AJAX單擊DELETE方法不會觸發一致
這裏是jQuery的:
window.onload = function() {
console.log("Window loaded")
$('#blog-comment-delete').click(function(){
var blogId = $(this).data("blog-id");
var commentId = $(this).data("comment-id");
var urlPath = '/app/blog/' + blogId + '/comment/' + commentId;
console.log('Pre-AJAX');
$.ajax({
method: 'DELETE',
url: urlPath,
success: function(){
window.location.replace('/app');
},
error: function(error){
console.log('Deletion Error: ' + error);
}
});
});
};
如何使用Node.js應用途徑:
appRoutes.route('/blog/:blogId/comment/:blogCommentId')
.delete(function(req, res){
models.BlogComment.destroy({
where: {
blogId: req.params.blogId,
blogCommentId: req.params.blogCommentId,
userId: req.user.userId
}
}).then(function(){
req.flash('info', 'Comment was successfully deleted.');
res.send('Comment was deleted.');
});
});
鏈接:
<div class="blog-comments">
{{#blog_comments}}
<p id="blog-comment">{{comment}}</p>
<a href="#" id="blog-comment-delete" data-blog-id="{{blogId}}" data-comment-id="{{blogCommentId}}">Delete</a>
{{/blog_comments}}
</div>
難道沒有與此相同的ID'博客,評論,delete'多個元素? –
@KeesvanLierop有。它用於每個評論。我是否應該使用其他唯一標識符才能準確觸發? – cphill
嗯,一個id應該始終是唯一的,並且只能在同一個頁面上一次,因此可能是衝突。改爲改爲類名(請參閱我的回答) –