【发布时间】:2022-02-26 20:00:55
【问题描述】:
我想将事件处理程序附加到处理当前选择的<span> 节点,但在点击事件触发之前,似乎选择已被浏览器清除(Chrome 16.0.912.63)。
我可以通过将处理程序附加到onmousedown 以稍微凌乱的方式解决此问题,但我宁愿不必这样做。
这是一个说明问题的简短 HTML 示例(需要 jQuery):
<span class="paste">PASTE</span>
<textarea id="selected"></textarea>
<script type="text/javascript">
$('.paste').click(function(e) {
var txt = window.getSelection(); // works only in Chrome, Safari, FF
$('#selected').val(txt);
e.stopPropagation();
});
</script>
所需的行为是我能够使用鼠标选择一些文本,然后单击单词“PASTE”以将所选区域的内容插入到文本区域中。看起来好像在单击处理程序触发之前清除了选择。如果我使用,此代码就可以正常工作:
<a class="paste" href="#">PASTE</a>
而不是span元素,或者如果我绑定onmousedown,但我无法控制这些元素,所以我不能只使用<a>而不是<span>。
【问题讨论】:
标签: jquery jquery-events textselection getselection