2012-02-21 45 views
1

我點擊我必須給參數一些依賴於被點擊活動依賴於對方的jQuery

的所有單元格值。如果它是一個單細胞我要在其上創建單元格的表可以通過jquery中的點擊功能來做到這一點。但是,用戶可以選擇多個單元格,並且如果所選單元格彼此相鄰並且應該提示用戶所選單元格是否相鄰,則參數應該被更新。

它似乎很複雜。我如何在jQuery中完成此操作?

更新:

該表等應用隨時間和地點作爲連續行和colums.Each細胞日曆表示1小時時隙。用戶可以選擇多個1小時的時隙,這樣可以製作一個更大的插槽(比如3小時插槽),以便在跨越此時隙的表中創建一個事件。

+2

我只是不知道你在問什麼。你能澄清嗎?也許顯示你的表,和一些JS代碼? – 2012-02-21 03:45:53

+0

希望這一次我很清楚。 – 2012-02-21 04:02:21

+0

表格如何顯示,以及定義連續單元格的內容。他們會一直在同一排,還是細胞可以跨越多行? – Anurag 2012-02-21 04:09:43

回答

0

這是一個相當不錯的工作示例。您監視鼠標向下/向上事件以確定用戶將鼠標拖動到的單元格。然後添加一個班級,以便知道他們是哪一個。另外,您還可以向父行添加一個類。

然後,當鼠標上移發生時,你檢查是否有多行已被激活。如果是這樣,則tr.active將會大於1。

http://jsfiddle.net/mrtsherman/bCcbZ/

var mousedown = false; 

$(document).mousedown(function() { 
    mousedown = true; 
}); 

$(document).mouseup(function() { 
    mousedown = false; 
    if ($('tr.active').length > 1) { 
     alert('separate rows'); 
    } 
    else { alert('same row'); } 

    $('.active').removeClass('active'); 
}); 

$('td').mousedown(function() { 
    $(this).addClass('active').parent().addClass('active'); 
}); 

$('td').mouseover(function() { 
    if (mousedown) { 
     $(this).addClass('active').parent().addClass('active'); 
    } 
});​ 
+0

這就是我的目的。如果可以通過點擊事件完成,那將會很棒。 – 2012-02-21 04:18:58

+0

@KamalReddy - 只需交換點擊事件。這實際上更容易。 http://jsfiddle.net/mrtsherman/bCcbZ/1/ – mrtsherman 2012-02-21 05:13:56

0

表格單元格的左側和右側,你可以使用jQuery的功能.next().prev()

var adjacent; // Stores an adjacent node, if it exists 
if (adjacent = this.next()) { // Returns false if it doesn't exist 
    // Process the next sibling of the current cell 
} 
... 

表格單元格的頂部和底部,你首先需要獲得當前單元格的索引值,然後檢查電池的父母的兄弟姐妹同一個表的單元格指數(假設你有沒有多行或-column細胞一個簡單的表結構):

var index = this.index(); 
if (adjacent = this.parent().prev().get(index)) { 
    // Process the top sibling of the current cell 
}