jquery td点击事件

时间:2012-06-30 13:48:24

标签: jquery

我正试图通过jquery在桌面上的td单元格上发出一个click事件。我已经为不同表中的行实现了它而没有任何问题。作为参考,该表是一个montly日历,单击一个正方形将提取当天的数据。

我无法触发事件,因此我将代码删除到基础并将其放在自己的页面上,以确保没有任何干扰。 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

知道为什么事件没有解雇?

2 个答案:

答案 0 :(得分: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!");
});

OR

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

如果此功能无效,则您没有任何包含calendertd的表格。

答案 1 :(得分: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>