2012-02-04 84 views
0

繼後更改背景顏色是我的代碼:我想點擊使用javascript

<table border="0" align="center" cellpadding="0" cellspacing="0" class="grid_table"> 
    <tr class="grid_caption"><td class="grid_caption">Customer Name</td></tr> 
    <? if(count($arrResult) > 0) { ?> 
     <? foreach($arrResult as $row) { ?> 
     <tr class="grid_row" ><td class="grid_row" onClick="javascript:return selectCustomer(this,<?=$row['customer_id']?>);"><?=HTMLVarConv($row['Name'])?></td></tr> 
     <? } ?> 
    <? } ?> 
</table> 

在這裏我得到了客戶 的名單,但是當我在這個客戶名稱,然後單擊其背景顏色應該是變化.. 這裏是我的javascript函數

function selectCustomer(row, id) { 
    alert(row); 
    var mark_color = '#fdf5d2' //'#c1c1ff' 
    var current_row = '#aad4f0' //'#e8e8e8' 
    if (row.style.backgroundColor == current_row) { 
     row.style.backgroundColor = mark_color; 
    } 
    else if (row.style.backgroundColor == mark_color) { 
     row.style.backgroundColor = current_row; 
    } 
    $("#editCustomer").attr("src","editcustomer.php?customer_id="+id+"&showmenu=0"); 
    $("#ajaxList").show(); 
    return; 
} 

但不能改變什麼問題???? 請幫我

+0

我不是PHP專家,但我確實看到你正在使用'if-else-if'語句。這意味着只有當這兩件事情中的一件事實時纔會發生。你確定'row.style.backgroundColor'肯定是這兩個值之一 - 'mark_color'和'current_row'嗎?您可能需要運行'console.log(row.style.backgroundColor);'以確保您具有該樣式屬性的正確值。 – 2012-02-04 12:24:40

回答

0

這是一個完美的好: 的CSS ::

.grid_row 
{ 
    padding: 3px; 
    border-right: 1px solid #849AAA; 
    border-bottom: 1px solid #849AAA; 
    vertical-align:top; 
} 
.evn 
{ 
    padding: 3px; 
    border-right: 1px solid #849AAA; 
    border-bottom: 1px solid #849AAA; 
    vertical-align:top; 
    background-color: white; 
    /*document.body.style.cursor = 'wait';*/ 
    cursor: pointer; 
    } 
.selevn 
{ 
    padding: 3px; 
    border-right: 1px solid #849AAA; 
    border-bottom: 1px solid #849AAA; 
    vertical-align:top; 
    background-color: silver; 
    cursor: pointer; 
} 

以下是我的Javascript代碼: -

<script type="text/javascript"> 
var prevRow = null; 
function selectCustomer(it,id) { 
    if (it.className.substring(0, 3) == "sel") 
    { 
     it.className = it.className.substring(3, 6); 
     prevRow = null; 
    } 
    else 
    { 
     it.className = "sel" + it.className; 
     if (prevRow != null) 
     { 
      prevRow.className = prevRow.className.substring(3, 6); 
     } 
     prevRow = it; 
    } 
    $("#editCustomer").attr("src","editcustomer.php?customer_id="+id+"&showmenu=0"); 
    $("#ajaxList").show(); 
    return ; 
} 

這是我的代碼:

<table border="0" align="center" cellpadding="0" cellspacing="0" class="grid_table"> 
     <tr class="grid_caption"><td class="grid_caption">Customer Name</td></tr> 
     <? if(count($arrResult) > 0) { ?> 
     <? foreach($arrResult as $row) { ?> 
     <tr class="evn" onClick="javascript:return selectCustomer(this,<?=$row['customer_id']?>);" ><td class="grid_row" id="<?= $row['customer_id']?>" ><?=HTMLVarConv($row['Name'])?></td></tr> 
     <? } ?> 
     <? } ?> 
     </table> 
0
$('.grid_row').click(function(){ 
$('.grid_row').css("background-color","#aad4f0"); 
$(this).css("background-color","#fdf5d2"); 
}); 

編輯:哦,你可以刪除的onclick =功能 以上線就足夠了,你想,只要做的類gridrow還有什麼。

這會在單擊時將顏色更改爲#fdf5d2,並在單擊其他行時將顏色更改回#aad4f0。 如果你不想讓顏色變回來,刪除第一行

1

既然你標記了「jquery」,爲什麼不使用它而不是內聯onclick處理程序呢?它可以像這樣簡單:http://jsfiddle.net/t7vj5/

$("td.grid_row").click(function() { 
    $(this).toggleClass("selected"); 

    $("#editCustomer").attr("src", "editcustomer.php"); 
    $("#ajaxList").show(); 

    return false; 
}); 

而CSS:

td.grid_row { 
    background-color: #fdf5d2; 
} 

td.grid_row.selected { 
    background-color: #aad4f0; 
} 

只要確保執行JavaScript的行創建之後,或把它包內$(document).ready(function() { ... })