2011-08-23 61 views
0

獲取jquery腳本與原型一起工作?

我試圖將我的jQuery腳本轉換爲原型兼容的,但我似乎無法讓它工作。有人可以幫幫我嗎?基本上它允許您單擊整個html表格行來選中/取消選中複選框。

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

您能否請張貼相關的標記呢? –

回答

0

在原型使用$$()選擇具有類似CSS選擇器的元素。

這將返回ArrayElements。然後,你可以使用.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'); 
    }); 
}); 

(未經測試)

+0

嗯,我將你的代碼完全複製到一個名爲「checkbox.js」的外部文件中,並將其包含在內(測試路徑,它是正確的),它不工作..即使是隱藏複選框的第一部分.. –

+0

我說過它未經測試;我給你一些指示,現在你可以自己寫代碼;) – arnaud576875

1

使用這個詞的jQuery而不是$也看過這樣的:http://docs.jquery.com/Using_jQuery_with_Other_Libraries

+0

我是否需要安裝jquery才能做到這一點?我聽說你不能同時使用jQuery和原型安裝在相同的應用程序 –

+0

你可以添加但你需要調用jQuery.noConflict();在jQuery調用之後 - kleinohad

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"); 
     } 
    }); 
}); 
+0

我的網站使用了許多Prototype腳本,只有一個小jQuery,所以我覺得它更容易轉換成一個jquery到原型。 –