我正试图通过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
。
知道为什么事件没有解雇?
答案 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!");
});
如果此功能无效,则您没有任何包含calender
类td
的表格。
答案 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('LinkBack','')" 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('LinkForward','')" style="font-size:Large;">>></a></th>
</tr><tr>
<td class="Regular">3</td><td>4</td><td>5</td>
</tr>
</div>
</form>