2015-12-21 87 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; 
}