具有相同名称的Javascript函数

时间:2016-04-04 06:50:29

标签: javascript

我想在js中使用同名的函数,基本上有一个链接:

<a onClick="showjury1();" >show</a>

当用户在桌面上时,我希望执行此代码:

if (window.screen.width >= 1150) {
  function showjury1() {
    document.getElementById("jury1").style.display = "block";
    document.getElementById("juryline1").style.display = "none";
  }
}

当用户处于移动设备或任何其他分辨率时,我希望执行此代码:

if (window.screen.width <= 500) {
  function showjury1() {
    document.getElementById("jury1").style.display = "none";
    document.getElementById("juryline1").style.display = "block";
  }
}

这可能吗?我已经执行了它并且它给出了错误; jury1没有定义等。

4 个答案:

答案 0 :(得分:2)

为什么需要两次定义该功能?只需正确使用条件语句

function showjury1()
{
    if(window.screen.width >= 1150)
    {
         document.getElementById("jury1").style.display = "block";
         document.getElementById("juryline1").style.display = "none";
    }
    else if(window.screen.width <= 500)
    {
        document.getElementById("jury1").style.display = "none";
        document.getElementById("juryline1").style.display = "block";
    }
    else
    {
       // might want to do something here too
    }
}

答案 1 :(得分:1)

您还可以执行以下操作:

if(window.screen.width >= 1150){
  window.showjury1 = function(){
    ...
  }
}else{
  window.showjury1 = function(){
    ...
  }
}    

答案 2 :(得分:0)

您可以将条件放入函数中,然后您不需要两次定义相同的函数,因为这不可能按照您希望的方式进行。

function showjury1 {
if(window.screen.width >= 1150)
{
     document.getElementById("jury1").style.display = "block";
     document.getElementById("juryline1").style.display = "none";
}
else if(window.screen.width <= 500)
{
    document.getElementById("jury1").style.display = "none";
    document.getElementById("juryline1").style.display = "block";`
}
}

答案 3 :(得分:0)

不要在showjury1语句中定义if函数,而是将if语句放在showjury1函数中。

showjury1(){
    if(check window width){...}
    else if(check different width){....}
}

并确保您的html在您的Javascript之前加载,否则当您尝试单击调用您的函数的按钮时,您将收到未定义的错误。