2015-11-24 10 views
8

Mam element ze skryptem do przesunięcia myszy, aby pokazać obraz. Nie mogę zmienić kodu HTML, więc czy możliwe jest wyłączenie javascript w linku, ale nadal utrzymuję link do href w stanie nienaruszonym? Nie mogę użyć identyfikatora elementu, ponieważ nie jest on unikalny.Wyłączyć javascript w elemencie

HTML:

<div class="container"> 
<a id="a211094" onmouseout="etim();" onmouseover="stim('/imgs/7c24b548-4f4c-418e-ad4f-53c73cf52ace/250/250',event,this.id);" href="/products/Computers/Desktops/Acer/Acer-Aspire-TC-705W-Towermodel-1-x-Core-i3-41?prodid=211094"><img src="" alt=""> 
</a> 
</div> 
+1

Co można zmodyfikować? Czy umieścisz dodatkowy JavaScript na stronie? –

+1

Tak, mogę dodać javascript i jQuery – Xeptor

+1

twój kod zaginął? – CoderPi

Odpowiedz

2

jeśli chcesz, aby wszystkie ancher tag lub można podać klasę dla tych tagów kotwicy na który chcesz wykonać to i zamiast $ ("a") napisz $ (".myClass")

$("a").each(function(index) { 
$(this).removeAttr("onmouseout"); 
$(this).removeAttr("onmouseover"); 
}); 

use może użyć attr ("disabled", "disable"); aby go wyłączyć:

+0

To działało świetnie, dzięki! – Xeptor

1
document.getElementById("a211094").removeAttribute("onmouseout"); 
document.getElementById("a211094").removeAttribute("onmouseover"); 
+0

teraz dostarczyłeś 2 błędne odpowiedzi w krótkim czasie BEZ żadnych komentarzy ani wyjaśnień -.- to nie jest tak, jak powinieneś to zrobić. -1 – CoderPi

+0

Właściwie odpowiedź była prawidłowa. Jak już powiedziałem, był to literówka. Teraz biegnij. –

2

Zastępowanie JavaScript:

document.getElementById("a211094").onmouseover = null 
document.getElementById("a211094").onmouseout = null 
+0

Nie mogę użyć identyfikatora łącza - mam ich kilka z różnymi identyfikatorami. Próbowałem document.getElementsByClassName i zagnieżdżałem klasę z rodzicem cotnainerem, ale to nie działało. – Xeptor

+0

HTML DOM 'getElementsByTagName()' Metoda: http://www.w3schools.com/jsref/met_element_getelementsbytagname.asp – CoderPi

+0

Dzięki za odpowiedź. Nie wiesz, jak tego użyć? – Xeptor

0

Jeśli możesz stale uzyskiwać dostęp do elementu zawierającego element i sterować nim, możesz spróbować podejścia do lewego pola, używając zdarzenia onmouseover na kontenerze.

Istnieje funkcja o nazwie setCapture(), którą można wywołać podczas zdarzenia myszy, aby "uchwycić" wszystkie zdarzenia myszy tego rodzaju dla elementu, do którego jest wywoływana, dopóki nie zostanie wywołane zdarzenie mouseup lub releaseCapture(). Więc można zrobić coś jak następuje:

jQuery(document).ready(function() { 
    $container = jQuery("#<yourcontainerid>"); 
    $container.on("mouseover", function(e) { 
    if (e.target.setCapture) e.target.setCapture(true); 
    }); 

    $container.on("mouseout", function() { 
     document.releaseCapture(); 
    }); 

}); 

The (true) argument jest ważny (myślę, bez badania), ponieważ zapobiega żadnych wydarzeń potomek wypalanie, co jest, co chcesz tutaj.

Funkcja mouseout zwolni przechwytywanie po opuszczeniu obszaru kontenera.

Czy to zadziała? nie mogę powiedzieć na pewno, nie testowałem tego w twoim przypadku, ale teoretycznie powinno!

AKTUALIZACJA: możesz użyć ".container" zamiast "#twojkonta" w JQuery, jeśli chcesz włączyć to dla wszystkich kontenerów klas.

+0

Hej, dzięki za wysiłek - to jednak nie zadziałało. Nie udało się rzucić błędu, ale zdarzenie nadal się wyrzucało. – Xeptor

Powiązane problemy