你可以 给需要点击的文字添加 span 来区分样式,然后给span加点击事件即可

解决方案 »

  1.   

    双击时触发
    <div id="test">Tom go to the school</div>
    <script type="text/javascript">
        function getSelectionText(obj){
            if (document.all){
                var r = document.selection.createRange();
                return r.text;    
            }else{    
                if(obj.selectionStart || obj.selectionStart == '0'){  
                    return obj.innerHTML.substring(obj.selectionStart,obj.selectionEnd);   
                }else if(window.getSelection){
                    return window.getSelection().toString();
                };    
            } 
        };
        function handler(obj,events){
            var text = getSelectionText(obj).replace(/(^\s*)|(\s*$)/g, "");
            events[text] && events[text]();
        }
        document.getElementById('test').ondblclick = function(){
            //可以处理多事件,不需要的话,那就单独判断进行处理就好了
            var events ={
                "school":function(){
                    alert('选中了school');
                },
                "Tom":function(){
                    alert('选中了Tom');
                }
            };
            handler(this,events);
        };
    </script> 
      

  2.   

    浏览器不会触发 text node 中的事件。
     
      

  3.   

    +1,不可能。除非给school添加一个html tag可以参考 http://jsfiddle.net/alexdickson/zJscT/1/if(event.target.innerHTML=='school'){
       //你要的事件
    }
      

  4.   

    <p class="a">Tom go to the <a href="javascript:fn()">school</a></p>
      

  5.   

    复杂??
    <div id="test">Tom go to the school</div> 
    <script type="text/javascript"> 
        function getSelectionText(obj){ 
            if (document.all){ 
                var r = document.selection.createRange(); 
                return r.text;     
            }else{     
                if(obj.selectionStart || obj.selectionStart == '0'){   
                    return obj.innerHTML.substring(obj.selectionStart,obj.selectionEnd);    
                }else if(window.getSelection){ 
                    return window.getSelection().toString(); 
                };     
            }  
        };     document.getElementById('test').ondblclick = function(){ 
           var text = getSelectionText(obj).replace(/(^\s*)|(\s*$)/g, ""); 
           if(text=='school'){
              alert(1)
           }; 
        }; 
    </script>