尝试选择之前选择的tr内的输入并将焦点添加到其中。
这是HTML:
<div id="login" style="position:relative; display:none; top:0px; left:0px; right:0px; bottom:0px; text-align:center; vertical-align:middle; z-index:10;" class="trwhole">
<table width="100%" height="100%">
<tr width="100%" height="100%">
<td width="100%" height="100%" style="vertical-align:middle; text-align:center;">
<img src="images/MemorizeItWhite.png" z-index="10000" style="width:290px;">
<table align="center" class="w290">
<tr>
<td>
<div id="lerror" class="alert"></div>
</td>
</tr>
<tr>
<td align="left">Username:
<br>
<input autocorrect="off" autocapitalize="off" type="text" placeholder="username" id="username" style="" class="ui-corner-all w290">
</td>
</tr>
<tr>
<td align="left">Password:
<br>
<input type="password" placeholder="password" id="password" style="" class="ui-corner-all w290" onkeypress="if (event.keyCode==13){login();}">
</td>
</tr>
<tr>
<td>
<input type="button" id="loginBt" onclick="login();" value="Log In" class="submit" style="width:85px;">
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
到目前为止,这是选择器:
$('#login tr:has(input[placeholder]), #signup2 tr:has(input[placeholder])').on("touchstart",
function (evt) { $(evt.target).filter("input").focus(); }
);
不幸的是
$(evt.target).filter("input").focus();
没有这样做。
我也试过
$(this).filter('input').focus();
但是也没有把重点放在输入上。
欢迎任何想法。
谢谢!
答案 0 :(得分:1)
evt.target
指的是发起事件的元素,它可能不是tr
元素。您可以在点击处理程序中使用this
来引用tr
元素
$('#login tr:has(input[placeholder]), #signup2 tr:has(input[placeholder])').on("touchstart", function (evt) {
$(this).find("input").focus();
evt.stopPropagation();
});
演示:Fiddle