Javascript 更改浏览器上的超链接位置调整大小

Javascript 更改浏览器上的超链接位置调整大小,javascript,jquery,hyperlink,Javascript,Jquery,Hyperlink,我试图改变我的超链接指向的浏览器大小,但我要么阻止我的所有链接,要么没有 var $w = window.innerWidth || document.documentElement.clientWidth; if ($w > 1025) { $('a.something').each(function (e) { e.preventDefault(); location.href = "/products.html"; }); } els

我试图改变我的超链接指向的浏览器大小,但我要么阻止我的所有链接,要么没有

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();
    }
});

您可以同时执行两个绑定。如果您真的需要,您可以在本栏中添加与上述相同的If,但我认为在大多数情况下,您可以保持原样。

抱歉,您无法理解您试图实现的目标和错误所在?在代码中,您在哪里连接到调整大小事件?那些
是什么东西?它们存储超链接吗?理想情况下,如果可能的话,准备好代表您的问题。我不知道我可以同时做两个绑定,这很好。至于阻塞链接,有没有办法在事件发生之前或在没有事件处理程序的情况下对其进行更改?(在调整大小时)因此如果(宽度<1025){$('a.something')每个(函数(e){e.preventDefault()}?您根本不需要更改href属性。preventDefault只会在“移动”视图中导致链接不采取任何操作。其中与在“桌面”中一样查看链接将正常运行。好的,3/7链接有子菜单,因此我只想将这3个链接(它们有特定的类)作为目标,以防默认()但是它们仍然在工作:到目前为止,我已经让全部或全部工作,然后您可以更改选择器。我使用的是通用选择器,但您可以根据需要进行扩充。听起来可能将其作为“a.something”来使用……但这实际上取决于您使用的类。或者您可以进行检查,例如:$(this.hasClass('something'))另一个简单的问题是,你知道有没有一个与preventDefault相反的选项,它允许链接在调整大小后工作?当我在1025+加载浏览器,然后收缩和(激活prevent default),然后再次展开时,我想prevent仍然是绑定的
$('.mainMenu > li').on('hover click', function () {
    $(this).find('.subMenu').stop().slideToggle(400);
});