Показать сообщение отдельно
  #7 (permalink)  
Старый 23.09.2011, 10:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

я так и подумал. уже в голове начал её решать, как упёрся в html.

в принципе, утро вечера мудренее, так что я придумал, как и чо

покажу код с комментами, может кто-нибудь допилит его

// контейнер, где будет произведена работа.
var container = document.getElementById('block'),
    //в какой тег будут обёрнуты слова в контейнере
    span = 'span',
    // "резерв". можно было использовать documentFragment.
    s = document.createElement(span);

/* 
обходим все слова в контейнере
каждое слово обёртываем в указанный сверху элемент(тег)
и добавляем в "резерву"
*/
for(var i=0,a,b=container.innerHTML.split(' ');b[i];i++) 
    (a=document.createElement(span)),
        (a.innerHTML = ' '+b[i]+' '),
            s.appendChild( a );

//для чего я не использовал documentFragment
container.innerHTML=s.innerHTML;

// легкий детект ie
var ie = /*@cc_on!@*/0;


//универсальный обработчик (один для 2х событий)
var mvrhndlr = function(e){
    
    // фиксим ивент для ie
    ie && ((e=event).target=e.srcElement);
    
    // если навели на span (слово)
    e.target.tagName=="SPAN" &&
        //меняем класс.
        (e.target.className=e.type=='mouseover'?'overed':'');
        
};

//без addEventLisneter и attachEvent
container.onmouseover=container.onmouseout=mvrhndlr;


ну и живой пример :
<style>
.overed {
    border:2px red solid;
}
</style>

<div id="block">Это мой весёлый блок. Тут я могу выделять подводкой мыши к слову. Уху-ху!</div>

<script>
var container = document.getElementById('block'),
    span = 'span',
    s = document.createElement(span);

for(var i=0,a,b=container.innerHTML.split(' ');b[i];i++) 
    (a=document.createElement(span)),
        (a.innerHTML = ' '+b[i]+' '),
            s.appendChild( a );


container.innerHTML=s.innerHTML;

var ie = /*@cc_on!@*/0;

var mvrhndlr = function(e){
    
    // фиксим ивент для ie
    ie && ((e=event).target=e.srcElement);
    
    // если навели на span (слово)
    e.target.tagName=="SPAN" &&
        //меняем класс.
        (e.target.className=e.type=='mouseover'?'overed':'');
        
};

//без addEventLisneter и attachEvent
container.onmouseover=container.onmouseout=mvrhndlr;
</script>




Сообщение от yital9 Посмотреть сообщение
необходимо не просто для выделения бордером, а для последующего сохранения.
сохранения куда?? в базу?


Сообщение от yital9 Посмотреть сообщение
Есть идея расковырять плагин ФФ...
это плохая идея
Ответить с цитированием