Для временной отмены такого действия я сделал "велосипед"
Код: Выделить всё
function startHelp(evt){
evt.stopPropagation();
evt.preventDefault();
document.body.style.cursor = "help";
document.body.onclick = Help;
document.body.onmouseover = stoponclick;
}
function Help(evt){
evt.stopPropagation();
evt.preventDefault();
document.body.onclick = '';
document.body.style.cursor = "default";
document.body.onmouseover = '';
alert('id='+evt.target.id+' name='+evt.target.name);
}
var oldclc, oldmout;
function stoponclick(evt){
var obj = evt.target;
if(obj == document.body) return;
oldclc = obj.onclick;
oldmout = obj.onmouseout;
obj.onclick = Help;
obj.onmouseout = releaseonclick;
obj.style.cursor = "help";
}
function releaseonclick(evt){
var obj = evt.target;
obj.onmouseout = oldmout;
obj.onclick = oldclc;
obj.style.cursor = "default";
}Действие отменяется, но при щелчке на элементах вроде checkbox'а и пр. все равно сначала происходит активация этого элемента (которая, правда, после вызова функции отменяется). Возможно ли сделать какое-нибудь элегантное решение?
И вдогонку еще вопрос: есть у меня элементы, к примеру
Код: Выделить всё
<input type='checkbox' name='mask' value='8' OnChange='chkvals();' id='Moth'>прочее<br>id относится только к checkbox'у, но не к тексту "прочее". Можно ли без дополнительных div'ов или span'ов сделать так, чтобы и текст имел id checkbox'а, к которому он относится (ИМХО, это вполне логично)?