$(this).keyup
如何知道我想要与#searchString
输入关联的keyup侦听器,而不是父div?不是$(this)
代表父div吗?我将$(this)
转储到控制台,它看起来像是父div的对象。
长话短说:
这是如何工作的? $(this).keyup
而不是明确地说:$('#searchString').keyup
??
$('<div id="msg">' + <input id="searchString" name="searchString" type="text" value="" /> + '</div>').dialog({
open: function () {
$(this).keyup(function (e) {
if (e.keyCode == $.ui.keyCode.ENTER)
$('#btnFind').click();
return false;
})
},
buttons: [
{
text: "Find",
id: "btnFind",
icon: "ui-icon-search",
click: function () {
//do stuff
}
}
]
});
答案 0 :(得分:0)
进行了一些测试;这是我的观察:
$(this)
代表父<div id="msg">
$(this).keyup
定位我添加到<div id="msg">
$('#btnFind').click();
是嵌套在keyup侦听器中的操作 id: "btnFind"
在父<div id="msg">
$('#searchString').keyup
谁在乎?
好吧,我没想到你可以通过对话框打开事件在输入上建立事件监听器。我正在即时创建对话框,我的假设是当open事件试图建立事件监听器时输入可能不存在。