2011-06-29 30 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()),则需要检测更改是否由点击事件触发 - 或者将点击事件在输入上,停止传播。