0

テーブルの td セルで jquery を介してクリック イベントを発生させようとしています。別のテーブルの行に問題なく実装しました。参考までに、表は月間カレンダーで、四角をクリックするとその日のデータが表示されます。

イベントを発生させることができなかったので、コードを基本に落とし込み、独自のページに配置して、何も干渉しないようにしました。css のテーブル クラスは table.calendar で、コードは次のとおりです。

 $('table.calendar').delegate('td','click',function () {
        alert('Success');
        var href = $(this).find("a").attr("href");
        if (href) {
            window.location = href;
        }
    });

私も .calendar として試してみましたが成功しませんでした。クラスがテーブルに正しく、他のクラスがないことを確認しました。を使用してjquery 1.6います。

イベントが発生しない理由は何ですか?

4

2 に答える 2

1

コードを準備完了のコールバックでラップしてみてください。

jQuery(function($) {
    $('table.calendar').delegate('td','click',function () {
            alert('Success');
            var href = $(this).find("a").attr("href");
            if (href) {
                window.location = href;
            }
        });
});

これが機能しない場合は、table.calender非同期に追加される可能性が高くなります。次に試してください:

$(document).deligate('table.calendar td', 'click', function() {
    alert("Success!");
});

また

$("table.calendar td").live('click', function() {
    alert("Success!");
});

calenderこれが機能しない場合は、を含むクラスを持つテーブルがありませんtd

于 2012-06-30T14:02:18.007 に答える
0

これが生のコードです。私はVS2010を使用しているので、コードの一部はそこから来ていることに注意してください。

<form method="post" action="WebForm1.aspx" id="form1">
///
<script type="text/javascript">



    jQuery(function ($) {

        $('table.calendar').delegate('td', 'click', function () {

            alert('Success');

            var href = $(this).find("a").attr("href");

            if (href) {

                window.location = href;

            }

        });

    });

<div>

<table id="tblCalendar" class="calendar" rules="all" border="1" style="width:70%;float:right;border-width:2px;border-color:Gray">

<tr style="border-width:2px;border-style:solid;">

    <th><a id="LinkBack" href="javascript:__doPostBack(&#39;LinkBack&#39;,&#39;&#39;)" style="font-size:Large;"><<</a></th><th align="center" colspan="1"><span id="CalendarTitle" style="font-size:Large;"></span></th><th align="center"><a id="LinkForward" href="javascript:__doPostBack(&#39;LinkForward&#39;,&#39;&#39;)" style="font-size:Large;">>></a></th>

</tr><tr>

    <td class="Regular">3</td><td>4</td><td>5</td>

</tr>

</div>

</form>

于 2012-06-30T14:34:14.747 に答える