Jquery .select() 和 .live()
当我选择输入中的文本时如何触发此触发器?
它必须是实时/委托的
$('input:text').live('select', function () {
alert("selected");
});
根据大众需求更新为输入:文本。在输入框中选择文本时,我仍然没有收到警报消息。 http://api.jquery.com/select/ 上的示例给出了我想要的结果。我只需要它在 .live() 上工作
How do I make this trigger when I select the text in the input?
It has to be live/delegate
$('input:text').live('select', function () {
alert("selected");
});
Updated to input:text by popular demand. I still do not get an alert message when selecting text in input boxes. The example on http://api.jquery.com/select/ gives me the result I want. I just need it to work on a .live()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您选择的所有输入都是错误的。如果您想这样做,您应该使用
$('input')
。或者甚至更好,因为只有文本输入可以在其中选择文本,请尝试
$('input:text')
我认为问题在于
.live()
的引用代码>文档:当您仅使用伪类时,jQuery 会添加 everything 选择器 (
*
),例如$('*:input')
,这可能无法根据它用来填充结果数组的方法。只是在黑暗中猜测,但在不了解更多问题所在的情况下我能做的就是最好的。You're selecting all inputs wrong. You should be using
$('input')
, if that's what you want to do.Or even better, since only text inputs can have text selected in them, try
$('input:text')
I think the issue lies in this quote from the
.live()
documentation:When you use only a pseudo-class, jQuery adds the everything selector (
*
), like$('*:input')
, which might fail to delegate based on the method it uses to fill the result array. Just a shot in the dark, but the best I can do without knowing more about what's going wrong.你的代码在 Opera、FF、Safari 和 Chrome 中这里(jsFiddle)对我来说效果很好。然而,IE8 似乎不喜欢它。
我想可能是因为
.live()
将事件处理程序绑定到document
并且 IE 可能没有onselect
事件因此我尝试将其范围限制为 body 甚至 wrapper 元素没有运气。这可能是 jQuery 的一个错误。
Your code works fine for me here(jsFiddle) in Opera, FF, Safari and Chrome. IE8 doesn't seem to like it, however.
I thought maybe it was because
.live()
binds an event handler to thedocument
and it's possible IE doesn't have anonselect
event on the document so I tried limiting the scope of it to the body and even to a wrapper element with no luck.This could be a bug with jQuery.