Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как сделать некликабельную ссылку? (https://javascript.ru/forum/events/26379-kak-sdelat-neklikabelnuyu-ssylku.html)

T-sh 06.03.2012 19:09

Цитата:

Сообщение от Serg_pnz (Сообщение 161747)
Сбрасывать наверное надо не href, а событие, на него повешенное.

а смысл? если событие не принудительно вышается (не через js), то оно всё равно срабатывать будет только при наличии href'a.

а если принудительно — то да, сбрасывать событие.

Serg_pnz 06.03.2012 19:15

T-sh,
ну вот и докопались до истины, что можно обойтись без div'а:victory:

alexandr_v-vich 06.03.2012 19:15

Цитата:

Сообщение от T-sh (Сообщение 161748)
а смысл? если событие не принудительно вышается (не через js), то оно всё равно срабатывать будет только при наличии href'a.

а если принудительно — то да, сбрасывать событие.

Принудительно. И сбросить мне его тяжело....быстрее и проще даже div прозрачный...

nikita.mmf 07.03.2012 11:47

var toggleClickableLink = (function (){
    var stopHandler = function ( e ) { e.preventDefault && e.preventDefault() || (window.event.returnValue = false); };
    return document.addEventListener ? function ( linkObj ) {
        linkObj[ (linkObj.isDisable ? "remove" : "add") + "EventListener" ]("click", stopHandler, false);
        linkObj.isDisable = !linkObj.isDisable;
    } : function ( linkObj ) {
        linkObj[ (linkObj.isDisable ? "de" : "at") + "tachEvent" ]("onclick", stopHandler);
        linkObj.isDisable = !linkObj.isDisable;
    };
})();

toggleClickableLink( document.getElementById("myLink") );//запрещаем переход
toggleClickableLink( document.getElementById("myLink") );//возвращаем возможность перехода

alexandr_v-vich 07.03.2012 17:03

nikita.mmf, к сожалению ничего не понял, но это мои проблемы, небольшой вопрос - мне нужно не переход запретить, а сам клик, то, что вы написали про это?

vladimircape 07.03.2012 17:35

Цитата:

Сообщение от nikita.mmf (Сообщение 161846)
var toggleClickableLink = (function (){
    var stopHandler = function ( e ) { e.preventDefault && e.preventDefault() || (window.event.returnValue = false); };
    return document.addEventListener ? function ( linkObj ) {
        linkObj[ (linkObj.isDisable ? "remove" : "add") + "EventListener" ]("click", stopHandler, false);
        linkObj.isDisable = !linkObj.isDisable;
    } : function ( linkObj ) {
        linkObj[ (linkObj.isDisable ? "de" : "at") + "tachEvent" ]("onclick", stopHandler);
        linkObj.isDisable = !linkObj.isDisable;
    };
})();

toggleClickableLink( document.getElementById("myLink") );//запрещаем переход
toggleClickableLink( document.getElementById("myLink") );//возвращаем возможность перехода

Попробывал всё работает. А вот как такое сделать с <button>

Tim 07.03.2012 17:57

Цитата:

А вот как такое сделать с <button>
думаю также, тока передав id button'a. этот код кроссбраузерно вешает обработчик события который кроссбраузерно останавливает действие по дефолту (в данном случае переход поссылке). если button type=submit то должана отмениться отправка формы. проверьте. мне кажется должно сработать.


Часовой пояс GMT +3, время: 22:00.