我想將事件處理程序附加到處理當前選擇的<span>
節點,但在點擊事件觸發之前,它看起來好像瀏覽器清除了選擇(Chrome 16.0.912.63)。如何防止在onclick事件處理之前清除選擇?
我可以通過在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>
所需behivor的是,我能夠選擇使用鼠標的一些文字,然後點擊單詞「粘貼」將選定區域的內容插入到textarea中。看起來好像該選擇在點擊處理程序觸發之前被清除。此代碼工作得很好,如果我使用:
<a class="paste" href="#">PASTE</a>
代替span元素,或者如果我綁定onmousedown事件,但我不是在元素上的控制,所以我不能只用一個<a>
代替一個<span>
。
是的,但我試圖附加此行爲的元素沒有一個不錯的選擇器,我可以使用。 (我並不想通過像這樣每次頁面加載的jQuery來使用我的DOM) – slacy 2012-01-03 20:52:02