我知道你没有提到jQuery - 但是对于这种动态的东西,我认为使用它是非常明智的。
把整个交易换成一个div。
<div id="wordSelector"><spans></div>
然后将一个mousedown事件附加到div。使用信号量确保只在mousedown期间处理事件。在跨度上捕获鼠标悬停事件,直到注册mouseup事件。
注意:这些事件可能需要附加到文档而不是div,以确保在div之外但进入div的mousedown事件得到处理,并且使用mouseup以及mouseup事件不在DIV。
var spansTouched = [];
var mouseDown = 0;
$("#wordSelector").mousedown(function(){
//track spans touched with a semaphore
mouseDown++;
});
$("#wordSelector").mouseup(function(){
mouseDown = 0;
//handle spansTouched and then reset it to []
});
$(".word").mouseover(function(){
if(mouseDown > 0){
spansTouched.push(this);
}
});
显然有改进的余地这里,这就是要突出一个可能的方法使用信号灯和鼠标事件承担。
你是什么意思“选择整个单词”?他们选择一个词时会发生什么,他们如何选择一个词 - 点击它?突出显示它? –
菜单将出现在选择的顶部。 – WHITECOLOR
相关主页:http://stackoverflow.com/questions/7809319/get-selected-text-expanded-to-whole-words – kol