我有2个函数onclick如下:
<td ... onClick='clickedTD();counterFunction();questionsClick("+json_q[i].id+");' ... </td>";
当我点击它时,我的questionsClick()函数有效但我的clickedTD()函数在第二次点击时有效。
clickedTD:
function clickedTD()
{
$(".questionsClass").click(function()
{
$(".questionsClass").css("background-color","#eee");
$(".questionsClass").css("color","black");
$(this).css("background-color","#5bc0de");
$(this).css("color","white");
});
}
你知道为什么吗?
答案 0 :(得分:0)
将该功能更改为:
function clickedTD(){
$(".questionsClass").css("background-color","#eee");
$(".questionsClass").css("color","black");
$(this).css("background-color","#5bc0de");
$(this).css("color","white");
}
它不起作用的原因是此函数正在添加单击事件回调,该回调将在单击该类时触发。这意味着第一次点击后的所有点击都会产生预期的结果。
或者,您可以添加此代码并从onclick属性中删除函数和函数调用。
$(".questionsClass").click(function(){
$(".questionsClass").css("background-color","#eee");
$(".questionsClass").css("color","black");
$(this).css("background-color","#5bc0de");
$(this).css("color","white");
});
答案 1 :(得分:0)
真的,你只需要将一个函数附加到click事件处理程序 - 这就是我将如何处理它:
<table>
<tr>
<td class="questionsClass" data-question-id="1">This is my Row</td>
</tr>
<tr>
<td class="questionsClass" data-question-id="2">This is my Row</td>
</tr>
<tr>
<td class="questionsClass" data-question-id="3">This is my Row</td>
</tr>
<tr>
<td class="questionsClass" data-question-id="4">This is my Row</td>
</tr>
<tr>
<td class="questionsClass" data-question-id="5">This is my Row</td>
</tr>
<tr>
<td class="questionsClass" data-question-id="6">This is my Row</td>
</tr>
</table>
$(".questionsClass").on('click', function(event){
event.preventDefault();
var $this = $(this),
dQuestionID = $this.attr('data-question-id');
alert(dQuestionID);
$(".questionsClass").css("background-color","#eee").css("color","black");
$this.css("background-color","#5bc0de").css("color","white");
});
这是一个快速的JSFiddle: http://jsfiddle.net/sbritton/HEZeB/1/