图像映射链接未在 jQuery UI 对话框中触发(仅限 IE)

发布于 2024-09-24 10:34:05 字数 998 浏览 2 评论 0原文

我正在尝试将图像映射放入 jQuery UI 对话框中。最初, 和 隐藏在页面上,这样我就不必执行任何 AJAX。当触发该对话框时, 和 被放置在对话框中,并且隐藏的原始内容与图像映射的链接被删除。

图像地图上的标签中有一些链接,在 Firefox、Chrome 等中,这些链接的位置正确且有效。

但是,在所有版本的 IE 中(网站是 SharePoint 2007 并且启用了兼容模式),链接不会在图像地图上触发。您可以将鼠标悬停在矩形上并显示链接,但该操作永远不会触发。

下面用于初始化的代码:

$(document).ready(function() { 
    $('.processDiagram').click(function() {
        var phase = $(this).attr('title');
        var text = $('#'+phase+' div').html();
        var mapname = $('#'+phase+' map').attr('name');
        $('#'+phase+' map').attr('name', ''); // null out the background map name so it doesn't get confused

        var $dialog = $('<p></p>').html(text).dialog({modal:true, autoOpen:false, width:620, title:phase, beforeClose: function(event, ui) { $('#'+phase+' map').attr('name', mapname); }});
        $dialog.dialog('open');
        return false; // So firefox won't just follow the link
    }
}

我真的可以在这里得到一些帮助,因为我不知道为什么链接没有触发。

谢谢, 史蒂夫

I'm attempting to place an image map into a jQuery UI dialog. Initially, the and are hidden on the page so that I don't have to do any AJAX. When the dialog is triggered, the and are placed in the dialog and the hidden original content has its link to the image map removed.

There are a few links on the image map in tags and in Firefox, Chrome etc the links are positioned correctly and work.

However, in all versions of IE (the web site is SharePoint 2007 and compatibility mode is on), the links do not fire on the image map. You can hover over the rectangles and be shown the link, but the action never fires.

Code used to initialise below:

$(document).ready(function() { 
    $('.processDiagram').click(function() {
        var phase = $(this).attr('title');
        var text = $('#'+phase+' div').html();
        var mapname = $('#'+phase+' map').attr('name');
        $('#'+phase+' map').attr('name', ''); // null out the background map name so it doesn't get confused

        var $dialog = $('<p></p>').html(text).dialog({modal:true, autoOpen:false, width:620, title:phase, beforeClose: function(event, ui) { $('#'+phase+' map').attr('name', mapname); }});
        $dialog.dialog('open');
        return false; // So firefox won't just follow the link
    }
}

I could really do with some help here as I have no idea why the links aren't firing.

Thanks,
Steve

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鱼窥荷 2024-10-01 10:34:05

所以,原因是布局的位置:相对在 IE 上做了一些工作,将所有热点移动到相对于主体而不是图像映射本身。

解决方案是解决该布局问题。

So, the reason is the layout being position:relative does a number on IE, moving all of the hotspots to be relative to the body and not to the image map itself.

Solution is to fix that layout issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文