首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jQuery日期选择器中添加选定日期的链接(href)

如何在jQuery日期选择器中添加选定日期的链接(href)
EN

Stack Overflow用户
提问于 2013-09-02 02:00:47
回答 3查看 8.8K关注 0票数 3

我需要这个脚本的小帮助:

代码语言:javascript
复制
var disabledDays = ["2013-9-5", "2013-9-13", "2013-9-28"];
var tips = ['aaa', 'bbb', 'ccc'];
$("#datepicker").datepicker({
    showButtonPanel: false,
    firstDay: 1,
    dateFormat: 'yy-mm-dd',
    beforeShowDay: function (date) {
        var m = date.getMonth(),
            d = date.getDate(),
            y = date.getFullYear();
        for (i = 0; i < disabledDays.length; i++) {
            if ($.inArray(y + '-' + (m + 1) + '-' + d, disabledDays) != -1) {
                //return [false];
                return [true, 'highlight', tips[i]];
            }
        }
        return [true];
    }
});

http://www.jsfiddle.net/VPzL7/

我想不出如何使用与删除日期相同的方法在这些选中突出显示的日期上添加href链接。

EN

回答 3

Stack Overflow用户

发布于 2013-09-03 00:44:38

尝试此解决方案:

HTML

代码语言:javascript
复制
<div id="datepicker"></div>

CSS

代码语言:javascript
复制
td.highlight {
    border: none !important;
    padding: 1px 0 1px 1px !important;
    background: none !important;
    overflow:hidden;
}
td.highlight a {
    background: #99dd73 url(bg.png) 50% 50% repeat-x !important;
    border: 1px #88a276 solid !important;
}

jQUery

代码语言:javascript
复制
var disabledDays = ["2013-9-20", "2013-9-24"];
var tips = ['some description1', 'some other description2'];
var hrefs = ['http://www.bbc.com/', 'http://www.cnn.com/'];

$("#datepicker").datepicker({
    showButtonPanel: false,
    firstDay: 1,
    dateFormat: 'yyyy-mm-dd',
    beforeShowDay: function (date) {
        var m = date.getMonth(),
            d = date.getDate(),
            y = date.getFullYear();
        for (var i = 0; i < disabledDays.length; i++) {
            if ($.inArray(y + '-' + (m + 1) + '-' + d, disabledDays) != -1) {
                return [true, 'highlight', tips[disabledDays.indexOf(y + '-' + (m + 1) + '-' + d)]];
            }
        }
        return [true];
    },
    onSelect: function(dateText, inst) {        
        var date = new Date(dateText.slice(4)),
            m = date.getMonth(),
            d = date.getDate(),
            y = date.getFullYear();        
        if ($.inArray(y + '-' + (m + 1) + '-' + d, disabledDays) != -1) {
            window.location = hrefs[disabledDays.indexOf((y + '-' + (m + 1) + '-' + d))];
        }
    }
});

这是一个有效的Fiddle。希望能对其他人有所帮助。

票数 6
EN

Stack Overflow用户

发布于 2013-09-02 02:17:04

这不是对你问题的直接回答,但它可以是一个解决方案。如果需要重定向到某个页面,请使用onSelect选项(http://api.jqueryui.com/datepicker/#option-onSelect)

代码语言:javascript
复制
var links = { "2013-09-05": 'http://my-website.com/event/world-domination' };

//...

    onSelect: function (dateString) {
        if ( links[ dateString ] )
          document.location.href = links[ dateString ];
    }
票数 2
EN

Stack Overflow用户

发布于 2013-09-02 02:12:35

jQueryUI似乎没有提供这样做的方法,但是您可以为每个“特殊”日期分配一个第二个类来处理它

代码语言:javascript
复制
return [true, 'date_'+String(y)+String(m)+String(d)+' highlight', tips[i]];

然后,您可以添加监听器,以便在单击每个特殊日期时触发

代码语言:javascript
复制
jQuery(document).on('click','.date_201385',function() {
 do something;
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18561264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档