2015-12-21 127 views
3

我制作了input按钮,并且由于某些原因,他们没有触发我的功能......有人可以对此发光吗?为什么我的输入不能触发我的功能

<div id="windowBar"> 
    <h3>If you were Chuck Norris...</h3> 
    <input id="WindowClose" type="button" onclick="close();"></input> 
    <input id="windowSmall" type="button" onclick="min();"></input> 
</div> 

和我的jQuery:

function close() { 
    $("#inputWindow").hide(300); 
} 

function min() { 
    if (minimize === false) { 
    $("#inputWindow").hide(); 
    $('#windowBar2').css('display','block'); 
    $('#windowBar2 h3').css('display','block'); 
    minimize = true; 
    } else { 
    $("#inputWindow").show(); 
    $('#windowBar2').css('display','none'); 
    $('#windowBar2 h3').css('display','none'); 
    minimize = false; 
    } 
} 
+4

把它们放在'document.ready'里面 – guradio

+1

@guradio,函数用'onclick'调用。所以,DOM函数和DOM元素都是在执行代码的DOM树中定义的。如果他将函数放在'document.ready'中,那么它们将不会在全局范围中定义。最好的做法是从'$()'范围中定义函数。 –

+1

'最小化'来自哪里? –

回答

3

尝试改变关闭功能名称到别的东西像closeTag,因为它可能与window.close会混淆它()功能。并改变函数名它的工作后,现在请检查 -

function closeTag() { 
 
    $("#inputWindow").hide(); 
 
} 
 

 
function minTag() { 
 
    if (minimize === false) { 
 
    $("#inputWindow").hide(); 
 
    $('#windowBar2').css('display','block'); 
 
    $('#windowBar2 h3').css('display','block'); 
 
    minimize = true; 
 
    } else { 
 
    $("#inputWindow").show(); 
 
    $('#windowBar2').css('display','none'); 
 
    $('#windowBar2 h3').css('display','none'); 
 
    minimize = false; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="windowBar"> 
 
    <h3>If you were Chuck Norris...</h3> 
 
    <input id="WindowClose" type="button" value="Close" onclick="closeTag()"/> 
 
    <input id="windowSmall" type="button" value="Min" onclick="minTag()"/> 
 
    
 
    <div id="inputWindow"> 
 
    hide text on Close button click 
 
    </div> 
 
</div>

+0

你可以检查我的回答 – Jagadeesh

+0

@Jagadeesh在你的情况下,如果我想从输入调用任何功能,那么我不能因为你修复了我认为用户不想要的ID的功能。 –

+0

@ShivaTraanman adding minimize = true;关闭功能将为你工作 – Jagadeesh

2

JavaScript函数需要你的HTML片段上面被定义。就像这样:

<script> 
function close() { 
    $("#inputWindow").hide(300); 
} 

function min() { 
    if (minimize === false) { 
    $("#inputWindow").hide(); 
    $('#windowBar2').css('display','block'); 
    $('#windowBar2 h3').css('display','block'); 
    minimize = true; 
    } else { 
    $("#inputWindow").show(); 
    $('#windowBar2').css('display','none'); 
    $('#windowBar2 h3').css('display','none'); 
    minimize = false; 
    } 
} 
</script> 
<div id="windowBar"> 
    <h3>If you were Chuck Norris...</h3> 
    <input id="WindowClose" type="button" onclick="close();"></input> 
    <input id="windowSmall" type="button" onclick="min();"></input> 
</div> 

或者你也可以做到这一点jQuery的方式:

<script> 
document.ready(function() { 

    $('#WindowClose').click(function() { 
     $("#inputWindow").hide(300); 
    }); 

    $('#windowSmall').click(function() { 
     if (minimize === false) { 
     $("#inputWindow").hide(); 
     $('#windowBar2').css('display','block'); 
     $('#windowBar2 h3').css('display','block'); 
     minimize = true; 
     } else { 
     $("#inputWindow").show(); 
     $('#windowBar2').css('display','none'); 
     $('#windowBar2 h3').css('display','none'); 
     minimize = false; 
     } 
    }); 
}); 
</script> 
<div id="windowBar"> 
    <h3>If you were Chuck Norris...</h3> 
    <input id="WindowClose" type="button"></input> 
    <input id="windowSmall" type="button"></input> 
</div> 
+0

你可以拨我的笔,我似乎无法得到这个工作... http://codepen.io/shiva112/pen/dGMrWB –

+0

我给了工作片段。你可以检查是你的要求吗?如果是的话将它标记为答案 – Jagadeesh

+0

我想你的要求是当点击关闭它应该隐藏输入。如果点击打开它应该打开输入窗口,如果我们点击打开它应该隐藏。我对么? – Jagadeesh

1

$(function(){ 
 

 
    var minimize = false 
 
    function close() { 
 
    $("#inputWindow").hide(300); 
 
    minimize = true 
 
    } 
 

 
function toggleInputWindow() { 
 
    if (minimize === false) { 
 
    $("#inputWindow").hide(); 
 
    $('#windowBar2').css('display','block'); 
 
    $('#windowBar2 h3').css('display','block'); 
 
    minimize = true; 
 
    } else { 
 
    $("#inputWindow").show(); 
 
    $('#windowBar2').css('display','none'); 
 
    $('#windowBar2 h3').css('display','none'); 
 
    minimize = false; 
 
    } 
 
} 
 
    $('#WindowClose').on('click',function(){ 
 
     close(); 
 
    }) 
 
    
 
    $('#windowSmall').on('click',function(){ 
 
     toggleInputWindow(); 
 
    }) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div id="windowBar"> 
 
    <h3>If you were Chuck Norris...</h3> 
 
    <input id="WindowClose" type="button" value="close"/> 
 
    <input id="windowSmall" type="button" value="open"/> 
 
</div> 
 
<div id="inputWindow">input window</div>

1

添加JavaScript:密切()上点击,而不是直接调用该函数关闭() 像这样使用

onClick =“javascript:close()”, onClick =“javascript:min()”。

+0

nope相同的结果.. –

+0

你是在相同的页面本身写入JavaScript本身或单独如果它是单独的请将该文件链接到您的代码 –

1

考虑使用回报虚假event.preventDefault()在你的功能。

var minimize; 
function close() { 
    $("#inputWindow").hide(300); 
    return false; 
} 

function min() { 
    if (minimize === false) { 
    $("#inputWindow").hide(); 
    $('#windowBar2').css('display','block'); 
    $('#windowBar2 h3').css('display','block'); 
    minimize = true; 
    } else { 
    $("#inputWindow").show(); 
    $('#windowBar2').css('display','none'); 
    $('#windowBar2 h3').css('display','none'); 
    minimize = false; 
    } 
    return false; 
}