Jquery 如果单击或查询URL中的字符串

Jquery 如果单击或查询URL中的字符串,jquery,Jquery,如果单击特定按钮或当前URL中存在特定查询字符串,我希望运行函数 这是我目前的职能: $('#layout-toggle-01').on('click', function() { $(this).addClass('layout-active').parents('#events-cal').attr('class', 'events-3-col'); $('#layout-toggle-02, #layout-toggle-03').removeClass('layout-a

如果单击特定按钮或当前URL中存在特定查询字符串,我希望运行函数

这是我目前的职能:

$('#layout-toggle-01').on('click', function() {
    $(this).addClass('layout-active').parents('#events-cal').attr('class', 'events-3-col');
    $('#layout-toggle-02, #layout-toggle-03').removeClass('layout-active');
    $('#events-cont-02, #events-cont-03').hide();
    $('#events-cont-01').fadeIn();
    // Run 4:3 image height function
    fourThreeHeightFn();
  });

如果(window.location.href.indexOf(“?view=columns”)>=0,我是否可以向该函数添加
条件,或者我是否需要单独的函数?

但这可能会运行2次

 $('#layout-toggle-01').on('click', function() {
     func($(this));
      });

    if(window.location.href.indexOf("?view=columns") >= 0){
     func($('#layout-toggle-01'));
    }

    function func(e){
       e.addClass('layout-active').parents('#events-cal').attr('class', 'events-3-col');
        $('#layout-toggle-02, #layout-toggle-03').removeClass('layout-active');
        $('#events-cont-02, #events-cont-03').hide();
        $('#events-cont-01').fadeIn();
        // Run 4:3 image height function
        fourThreeHeightFn();
        }

但这可能会运行2次

 $('#layout-toggle-01').on('click', function() {
     func($(this));
      });

    if(window.location.href.indexOf("?view=columns") >= 0){
     func($('#layout-toggle-01'));
    }

    function func(e){
       e.addClass('layout-active').parents('#events-cal').attr('class', 'events-3-col');
        $('#layout-toggle-02, #layout-toggle-03').removeClass('layout-active');
        $('#events-cont-02, #events-cont-03').hide();
        $('#events-cont-01').fadeIn();
        // Run 4:3 image height function
        fourThreeHeightFn();
        }

如果a)有一个正确的查询字符串,或者b)单击了一个元素,听起来您需要做很多事情。我将首先定义一个函数,它是您想要做的事情。比如:

var doStuff = function () {
    $('#layout-toggle-01').addClass('layout-active').parents('#events-cal').attr('class', 'events-3-col');
    $('#layout-toggle-02, #layout-toggle-03').removeClass('layout-active');
    $('#events-cont-02, #events-cont-03').hide();
    $('#events-cont-01').fadeIn();
    // Run 4:3 image height function
    fourThreeHeightFn();
}
$(function () {
    if (window.location.search.indexOf('columns') > 0) {
        doStuff();
    }

    $('#layout-toggle-01').on('click', function() {
        doStuff();
    });
});
然后根据您的需求向该函数添加调用。所以你会得到这样的结果:

var doStuff = function () {
    $('#layout-toggle-01').addClass('layout-active').parents('#events-cal').attr('class', 'events-3-col');
    $('#layout-toggle-02, #layout-toggle-03').removeClass('layout-active');
    $('#events-cont-02, #events-cont-03').hide();
    $('#events-cont-01').fadeIn();
    // Run 4:3 image height function
    fourThreeHeightFn();
}
$(function () {
    if (window.location.search.indexOf('columns') > 0) {
        doStuff();
    }

    $('#layout-toggle-01').on('click', function() {
        doStuff();
    });
});

因为看起来你正在构建一些东西来切换布局,您可以重构
doStuff
函数,以使用传递给它的参数值来更改所需的类,而不是在特定的id值中进行编码。

如果a)存在正确的查询字符串或b)单击元素,听起来您需要做很多事情。我将首先定义一个函数,它是您想要做的事情。比如:

var doStuff = function () {
    $('#layout-toggle-01').addClass('layout-active').parents('#events-cal').attr('class', 'events-3-col');
    $('#layout-toggle-02, #layout-toggle-03').removeClass('layout-active');
    $('#events-cont-02, #events-cont-03').hide();
    $('#events-cont-01').fadeIn();
    // Run 4:3 image height function
    fourThreeHeightFn();
}
$(function () {
    if (window.location.search.indexOf('columns') > 0) {
        doStuff();
    }

    $('#layout-toggle-01').on('click', function() {
        doStuff();
    });
});
然后根据您的需求向该函数添加调用。所以你会得到这样的结果:

var doStuff = function () {
    $('#layout-toggle-01').addClass('layout-active').parents('#events-cal').attr('class', 'events-3-col');
    $('#layout-toggle-02, #layout-toggle-03').removeClass('layout-active');
    $('#events-cont-02, #events-cont-03').hide();
    $('#events-cont-01').fadeIn();
    // Run 4:3 image height function
    fourThreeHeightFn();
}
$(function () {
    if (window.location.search.indexOf('columns') > 0) {
        doStuff();
    }

    $('#layout-toggle-01').on('click', function() {
        doStuff();
    });
});

因为它看起来像是在构建切换布局的东西,所以可以重构
doStuff
函数,使用传递给它的参数值来更改所需的类,而不是在特定的id值中编码。

当然可以。。。为什么不呢?@KobyDouek好的,更具体地说,我正在寻找在满足任一条件时函数运行的语法。因此,您希望函数仅在(window.loca…)@KobyDouek否,单击按钮或URL查询字符串匹配时运行。然而,有时候,两者都是真的,我想我只希望函数运行一次。当然你可以。。。为什么不呢?@KobyDouek好的,更具体地说,我正在寻找在满足任一条件时函数运行的语法。因此,您希望函数仅在(window.loca…)@KobyDouek否,单击按钮或URL查询字符串匹配时运行。然而,有时候,两者都是正确的,我想我只希望函数运行一次。这比我想象的更清晰,也更有意义。谢谢这比我想象的要干净,而且有道理。谢谢