2011-06-29 28 views
1

我有一個要求,希望我能在這裏得到答案。
我在我的web應用程序中使用了一個主題。這會將表格設置爲默認表格行將具有不同的顏色,如下所示。通過點擊點擊事件來改變​​的背景不起作用

enter image description here
顏色將會改變每當我點擊任何該複選框或單選按鈕(假設我們現在點擊複選框意味着我們點擊)。但如果我改變複選框的財產編程(不含按鈕),風格不影響如下。

enter image description here

爲我寫代碼來手動觸發Click事件。但它不工作..請有人幫助我。以下是我的代碼。我無法粘貼HTML,抱歉。

$('TABLE TBODY TR TD INPUT').change(function() {  
     if($(this).prop('checked')) 
     { 
      S(this).parents('TD').click(); 
     } 
    });  

回答

0

我沒有看到任何你提到的「下面」的代碼。

但是,如果我正確地理解了這個問題,你確定你是在正確的對象上觸發事件嗎?而你做任何測試,看看是否「手動」炒魷魚click事件(我假設做任何

$('some selector').trigger('click') 

$('some selector').click()) 

實際上是觸發你的點擊回調?

+0

雅我已檢查它,但不工作。在他們通過CSS寫的主題中。默認情況下,他們正在應用 – Reddy

+0

我現在看到代碼。我添加了另一個答案,因爲如果我編輯了這個答案,你的評論就不會產生語境意義。 –

0

你有在change處理的幾個問題:

clicky(this.parents('TD')); 

首先,沒有任何clicky功能可見,您正在嘗試使用它。其次,this是沒有parents方法的DOM對象。

如果你想改變背景顏色,當有人點擊按鈕本身,那麼您可以直接在更改處理使用closest

$('TABLE TBODY TR TD INPUT').change(function() { 
    $(this).closest('td').css('background-color', 'gray'); 
}); 

例如:http://jsfiddle.net/ambiguous/V8c3e/

如果你想如果他們點擊表格單元格中的任意位置,然後將點擊處理程序綁定到表格單元格的背景以改變背景:

$('TABLE TBODY TR TD').click(function() { 
    $(this).css('background-color', 'gray'); 
}); 

例如:http://jsfiddle.net/ambiguous/V8c3e/1/

0

我可以看到很多潛在的問題與您的代碼,但這可能是由於缺乏代碼/上下文。

試試這個:

function changey(elem) { 
    $(elem).css('background-color','gray'); 
} 

$(document).ready(function() { // this line is very important 

    $('TABLE TBODY TR TD INPUT').change(function() {  
     changey((this).closest('td')); 
    }); 

    $('TABLE TBODY TR TD').click(function() { 
     changey((this).closest('td')); 
    }); 

}); 
0

首先,你只觸發click事件如果輸入被檢查 - 如果輸入的用戶點擊取消選中呢?我認爲TD的造型應該是一個切換。

二,你有S(這個) - 它應該是$(this)。

第三,你要強制點擊全部 TD父母(這可能是好的)。你可能真的打算$(this).parents('td')。first()。click()?

第四 - 如果輸入正在通過點擊進行更改...那麼,它的父代已經獲得了點擊事件。也許你正在觸發兩個點擊事件(一個來自你的更改事件,另一個來自用戶的實際點擊),並且它們相互取消了?例如,如果您需要更改計算/手動輸入更改事件(例如$(this).change()),則需要檢測更改是否由點擊事件觸發 - 或者將點擊事件在輸入上,停止傳播。