dpojoxa5613 2010-05-03 08:41
浏览 87
已采纳

如何重新调整大小和重新定位shadowbox / greybox窗口以显示在某个div元素中?

I would like to know if it is possible to re-size and re-position a greybox or shadowbox window to display in a certain div element?

I am creating a template for a wordpress site, and I am using the default calendar, but when you click on a date inside of the calendar, the default action is to open it up in a new window.

Would it be possible to mod greybox or shadowbox in such a way that when you click on a date, the box opens up over the calendar displaying the contents in it, instead of a new page?

Or is there another way of achieving the desired result, maybe with jQuery or Javascript?

Any help would be greatly appreciated, thanx in advance!

  • 写回答

1条回答 默认 最新

  • dongtiandexue123456 2010-05-03 08:49
    关注

    jQuery UI has a widget called Dialog that can achieve your result. You could use it like this:

    $(document).ready( function() {
    
        // This will initialize the dialog box and hide it by default.
        // You can find a list of most options here: http://docs.jquery.com/UI/Dialog
        $("#dialog").dialog({
            autoOpen: false,
            modal : true,
        });
    
        // This will select the links like you specified
        $('#wp-calendar a').click( function(e) {
            e.preventDefault() // Disable the link from going to a new page
            var url = $(this).attr("href"); // Pull the HRef for the link for making the AJAX request
    
            // This will make an AJAX request and put the result in the dialog.
            $("#dialog").empty().load(url, function() {
    
                // This is the callback for when the AJAX request finishes
                // All it does it open the dialog, which now has data in it
                $("#dialog").dialog("open");
            });
        });
    });
    

    Note: You'd need to install jQuery UI for this, and you'll probably want to read up on Dialog here. You'll need to take more steps if you'd want this to degrade gracefully, and depending on your markup. If you could post a snippet of a "day" on the calendar, I can try to tailor it to your needs.


    Edit: Lets say that the file that return the rendered page for the event is "/ajax/event.php?id=123", you'd first want to prevent the link's default behavior (of navigating to a new page); then you'd want to use jQuery's load function to load an assembled URL's data into the dialog; once that request completes, you'd want to open the dialog. I've edited to code to do so, and it will degrade gracefully for user that don't have JavaScript enabled.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角