两个函数onclick,其中一个是jQuery中的click事件

时间:2014-04-05 14:48:17

标签: jquery

我有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");
});
}

你知道为什么吗?

2 个答案:

答案 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/