如何将相同的JQuery代码应用于所有Rails集合项

时间:2012-09-26 18:47:19

标签: jquery ruby-on-rails-3

我正在尝试将Javascript启用的评分应用于帖子的每个回复。单击链接后,将隐藏一些元素并显示其他元素,并通过Ajax更新评级。我将部分计数添加到每个响应的HTML元素的ID中,因此每个响应都具有不同的ID。但是现在我如何识别哪个响应被点击了哪个链接,以便JQuery代码可以处理与相关响应相关联的元素?有没有办法在点击链接时发送链接的ID?

修改

切换功能

(function($) {
           return $.fn.clickToggle = function(func1, func2) {
           var funcs;
           funcs = [func1, func2];
           this.data("toggleclicked", 0);
           this.click(function() {
            var data, tc;
            data = $(this).data();
            tc = data.toggleclicked;
            $.proxy(funcs[tc], this)();
            return data.toggleclicked = (tc + 1) % 2;
   });
   return this;
   };
   })(jQuery);

用法

$('#link1').clickToggle(function() {
    $('#link2').hide();
    $('link3').hide();
    $('#link4').show();
    $('link5').show();
}, function() {
    $('#link2').show();
    $('link3').show();
    $('#link4').hide();
    $('link5').hide();     
}    

1 个答案:

答案 0 :(得分:1)

查看this fiddle

使用jQuery的on()方法我正在监听所有锚标签上的点击事件。在点击处理程序中,我抓住目标并拉动其ID属性。

<a href="#" id="A">Test 1</a><br>
<a href="#" id="B">Test 2</a>​

$(document).ready(function() {
    $(document).on('click', 'a', function(event) {
        event.preventDefault();
        alert($(event.target).prop('id'));
    });        
});​