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