1

基本上我有一个href,它通过json传递图像的id,如下所示:

http://localhost:4567/public/vote.html?image=50b4d006fa4634bb130000fe

然后,这会根据 id 在 mongo 中创建/更新图像,并在用户/访问者投票时更新。

目前,在处理完 vote.html 中的代码后,我使用 silex 进行重定向:

 return $app->redirect('popular.html'); 

我想知道是否可以使用 jquery 在不重定向的情况下处理上述 href,所以基本上我可以点击投票,并且数字会无缝更改,而用户不知道他们已被重定向。

回答

抱歉这个模糊的问题,但我的回答确实来自下面发布的原则。

我更改了 href 以分配一类投票和图像的 id:

<a class="vote" id="' + image.id + '" href="#">

然后将此添加到我的 $(document).ready 函数中:

$(".vote").live('click', function() {
        $('span', this).toggle();
        $.ajax( site_url + 'vote.html?image=' + $(this).attr('id'));
    });

这在理论上使用 mongo 对象的 id 并将其附加到每次单击对象时的 url,处理 href 而不重定向。

4

3 回答 3

2

是的,您可以使用一些 jQuery 来帮助您。这是一个非常人为的示例,因为您没有为您的投票按钮/图像提供任何 HTML 标记示例。

$(function() { // anything in here will happen once the DOM is ready
    $('.vote').click(function(e) { // assign click for each elem w/ class "vote" 
        e.preventDefault(); // prevent default action (if elem was an anchor)
        // Make the server request asynchronously
        var $this = this;
        $.ajax({
            type: "POST", // or "GET"; or use $.post()/$.get() 
            url: $(this).attr("href"), // the href of the anchor
            data: null // or JSON here (e.g. { 'id': 'abcde' })
        }).done(function(data) { // vote.html should be image data of some kind
            // update the DOM with the new vote image
            // possible example if response was base64 encoded png
            $($this).closest('image').attr("src", "data:image/png;base64," + data);
        });
    });
});
于 2012-12-03T18:59:33.903 回答
0

为什么不使用 AJAX 来更新号码?使用jquery.ajax()真的很简单

于 2012-12-03T17:07:12.300 回答
-1

您可以像这样覆盖 jQuery 中的单击事件:

$("a").click(function(event) {
  event.preventDefault();
  // DO MY STUFF HERE
});
于 2012-12-03T16:48:25.640 回答