16341


monacaで初のアプリ習作を作っています。  
16x20程度のテーブルを作り、セルをタップしたらフォーカスを移すという機能を実装しようとしている最中で、急に思った通りの動作をしてくれなくなってしまいました。  
具体的にいうと、indexが-1のtd要素からクリックイベントが呼ばれたきり、それ以降クリックに反応しなくなってしまいます。  
あれ・・・さっきまで動いてたのにナンデ・・・。  
いろいろ試しているのですが行き詰っています。どなたか解決策ご存じありませんか？

[code]

    function cellClick(){
        console.log("clicked"+$("td").index(this)+"/"+$("td").length);
    //ここで"clicked-1/352"のログが出て、それ以降クリックに反応しなくなる。
        $(".focus").removeClass("focus");
        $(this).addClass("focus");
    }
    
    $(function(){
        console.log("load complete.");
        showTable();//テーブルを構築して表示
        $("td").click(cellClick());
    });
    
[/code]


CC BY-SA 3.0
2015-09-07T00:57:40.000
16330
2015-09-07T05:03:23.143
2015-09-07T05:03:23.143
76
12226
question
monaca jquery
謎のクリックイベントが呼ばれる


$("td").click(cellClick()); は間違いでは？

jQuery.click() の引数は function
ですので、cellClickという関数がfunctionを返すのであれば意味は通りますが、cellClick自体をクリックイベントのコールバック関数として登録するのであれば、  
$("td").click(cellClick);  
とする必要がありますよね。

"clicked-1/352"のログが吐き出されたのは、$("td").click(cellClick());を実行した時に  
cellClick関数が呼ばれたため、と思います。


CC BY-SA 3.0
2015-09-07T05:00:28.467
16341
2015-09-07T05:00:28.467
9888
16330
answer