0
我有一個名爲showHide()的函數,當另一個按鈕(button1)被點擊時,交替地顯示和隱藏文本輸入字段和一個按鈕(button2)。文本輸入字段在打開時會自動對焦,這很有用。測試在運行element.blur函數之前是否點擊按鈕()
的HTML看起來大致從而:
<button1>Show/Hide</button>
<form>
<input class="hidden" type="text" />
<button2 type="submit">Submit</button>
</form>
<script type="text/javascript">
$("button1.someSelectors").click(function() {showHide();});
$("input.someSelectors").blur(function() {showHide();})
</script>
我想延長功能,使得當所述輸入字段失去焦點它和button1的消失,除非它失去焦點,因爲被點擊按鈕1被。現在它讀取我只測試輸入字段是否有焦點。我怎樣才能檢查button2是否被點擊?
我想:
$("input.someSelectors").blur(function() {
if (!$("button2.someSelectors").is(":focus")) {
showHide();
}
});
,但它甚至躲到了表單元素,當我試圖點擊按鈕2。
另一種方法是,以測試是否被點擊或不BUTTON2在功能的「隱藏」的一部分,但是當我加入
if(!$("button2.someSelectors").click()) {do the hide part of the function}
來顯示隱藏(),當我點擊的形式得到提交button1 或 button2。這是我的問題example。誰能幫忙?
- 編輯:
var showHide=function(item, category) {
if($("input."+item+"."+category).hasClass("hidden")) {
$("input."+item+"."+category).show("fast").focus().removeClass("hidden");
$("button.buy."+item+"."+category).show("fast");
$("button.purchase."+item+"."+category).text("Never mind!");
} else {
$("input."+item).hide("fast").addClass("hidden");
$("button.buy."+item).hide("fast");
$("button.purchase."+item).text("Purchase");
}
}
鼠標按下=點擊 - >含義點擊=(鼠標按下按鈕,按鈕和MouseUp的鼠標移出) – 2012-02-24 21:44:07
這將導致表單字段出現並立即消失!在input.focus()被showHide()函數應用之前,input.blur()可能正在被測試嗎? – Kyle 2012-02-24 21:50:39
你可以顯示'showHide'代碼嗎? – ShankarSangoli 2012-02-24 21:51:57