获取jquery脚本来处理原型?

时间:2011-08-23 20:04:31

标签: jquery ruby-on-rails prototypejs

我试图将我的jQuery脚本转换为Prototype兼容的脚本,但我似乎无法让它工作。有人可以帮帮我吗?它的基本功能是允许您单击整个html表行来选中/取消选中复选框。

$('input:checkbox').hide()
$('.clickable tr').click(function() {
var $checkbox = $(this).find(':checkbox').filter(':first');
$checkbox.attr('checked', !$checkbox.attr('checked'));
$(this).toggleClass('selected');
});

3 个答案:

答案 0 :(得分:1)

使用jQuery这个词而不是$也读这个:http://docs.jquery.com/Using_jQuery_with_Other_Libraries

答案 1 :(得分:0)

在Prototype中,您使用$$()选择具有类css选择器的元素。

这会返回Array Elements。然后,您可以对返回的值使用.each()方法:

$$('input:checkbox').each(function(e) { e.hide(); });

对于活动,您使用Element.observe()方法:

$$('.clickable tr').each(function(e) {
    e.observe(function(event) {
        var checkbox = $(this).select('[type="checkbox"]:first');
        checkbox.checked = !checkbox.checked;
        $(this).addClassName('selected');
    });
});

(未测试的)

答案 2 :(得分:0)

编辑:如果您希望获得js库的双重兼容性,请考虑使用$.noConflict()并在任何地方使用jQuery而不是$

如果您希望仅通过单击行来切换复选框值,下面是您在jQuery中执行此操作的方法。这是工作example

$(function(){
    $('tr').click(function(){
        var checkbox = $(this).find('input[type="checkbox"]').first();
        if(checkbox.attr("checked")){
            checkbox.removeAttr("checked");
        }
        else{
            checkbox.attr("checked", "checked");
        }
    });
});