2012-07-13 59 views
0

我有一个自定义日历,我创建基本上只是为每个月的每一天创建一个表格单元格。设置值onClick表单元格

我想要做的是,当用户点击某一天,显示一个弹出窗口(将加载一个单独的页面),显示所选日期的所有事件。

但是我不确定如何设置所选日期的值,以便我可以将它传递到弹出页面。

这里是我的时刻:

<td align="center" valign="middle" width="26" height="27s" 
    class="lightBlue dayPopup" style="cursor: pointer;" 
    onMouseOver="javascript:this.className='lightBlueH'; 
        document.getElementById('#Request.calID#day#Day(Variables.cellDate)#').style.visibility='visible';" 
    onMouseOut="javascript:this.className='lightBlue'; 
       document.getElementById('#Request.calID#day#Day(Variables.cellDate)#').style.visibility='hidden';" 
    onClick="setDate(#Variables.cellDate#);" id="#Variables.cellDate#"> 

jQuery代码:

$("##setDate").click(function(date) { 
     var viewDate = date; 
    }); 

我然后设置URL传递到控制弹出一个函数的变量。

有人可以请我指出我要去的地方的错误方向,试图设置所选日期的值吗?

+0

仅供参考'onMouseOver'或'onMouseOut'或任何其他事件不需要'的JavaScript:'在代码之前添加。所以你可以删除它们。 'javascript:'适合在链接的'href'中使用 – Imdad 2012-07-13 11:48:07

回答

1

你需要利用下面代码中的“this”的力量来引用被点击的单元格。

$("td.yourCalendarCells").click(function() { 
      var viewDate =  getDateFromCell(this); 
    }); 


function getDateFromCell(cell){ 
    return $(cell).attr('id') 
} 

我不知道你的ID属性是什么格式,或者您是如何存储viewDate,所以你可能需要做一些更加getDatefromCell返回的日期回来,但你应该有足够的工作现在出来了。

1

您主要想要将日期发送到弹出页面以显示该日期的事件。它很容易 您可以在http://jsfiddle.net/DQ3Bm/

使用标签用于保持连接到该元素的DETE /时间的方法,但仍然只显示日期部分用户。

<table class="event-calendar"> 
    <tr> 
     <td> 
      <time datetime="2013-01-01">1</time> 
     </td> 
     <td> 
      <time datetime="2013-01-02">2</time> 
     </td> 
    </tr> 
</table> 

然后在td的点击就可以获取日期传递给弹出网址

$(document).ready(function(){ 
    $(".event-calendar td").click(function(){ 
     alert($(this).find("time").attr("datetime")); 

    }); 
}); 
+0

这听起来可能完全愚蠢,但我还没有使用HTML5时间标签,并且想知道如何将该属性设置为日历日期? – CPB07 2012-07-13 13:40:28

+0

而不是使用我不确定的

+0

http://jsfiddle.net/j7dSW可能会帮助更多 – CPB07 2012-07-13 14:46:37