javascript - 在浏览器调整大小时更改超链接位置

标签 javascript jquery hyperlink

我试图在浏览器调整大小时更改我的超链接指向的位置,但是我要么阻止我的所有链接,要么一个都不阻止

var $w = window.innerWidth || document.documentElement.clientWidth;

if ($w > 1025) {
    $('a.something').each(function (e) {
        e.preventDefault();
        location.href = "/products.html";
    });
} else {
    $('a.something').each(function (e) {
        e.preventDefault();
         location.href = "javascript:void(0);";
    });
}

if ($w > 1025) {
    $('.mainMenu > li').unbind().hover(function () {
        $(this).find('.subMenu').stop().slideToggle(400);
    });
} else {
    $('.mainMenu > li').unbind().click(function (e) {
        $(this).find('.subMenu').stop().slideToggle(400);
    });
}

最佳答案

在每次调整大小时进行多次 DOM 更改可能代价高昂并且会降低您的网站速度。我建议让功能根据浏览器大小确定要采取的操作。

$(document).on('click', 'a[href]', function (e) {
    var width = window.innerWidth || document.documentElement.clientWidth;

    if (width < 1025) {
       e.preventDefault();
    }
});

这只会在 View 尺寸较小(低于 1025 像素)时阻止链接。

$('.mainMenu > li').on('hover click', function () {
    $(this).find('.subMenu').stop().slideToggle(400);
});

您可以同时进行两个绑定(bind)。如果您真的需要,您可以在此 block 中放置与上面相同的 if,但我认为在大多数情况下,您可以保持原样。

关于javascript - 在浏览器调整大小时更改超链接位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20134808/

相关文章:

javascript - 正在加载并等待 "global" meteor 订阅

javascript - jquery - 检查属性上的内联 javascript

javascript - 使用 JQuery 在 Chrome 中调整图像大小

javascript - 单个滚动部分的动画

javascript - 如何用另一个元素替换一个元素?

vba - Excel 超链接到带有 ID 或命名 anchor 的网页位置

javascript - React Router 通过自点击链接重新渲染组件

javascript - 推送: function in javascript的含义

WPF - 使超链接可点击

html - 添加重定向到电话链接