Avatar billede kasbas91 Nybegynder
02. november 2010 - 12:34 Der er 9 kommentarer og
1 løsning

Hej jeg har et lille problem, med jquery og nogle links, som jeg ikke kan få til at virke...

Hej eksperten.dk

Jeg har nogle problemer med at få mine links til at virke...


var state = false;
function hidePopups() {
    $("#EmFriendrequests, #EmNotifications, #EmMessages").hide();
    $("#EmNotifi").removeClass("EmNotificationsBtnToggler");
    $("#EmMessage").removeClass("EmMessagesBtnToggler");
    $("#EmFriend").removeClass("EmFriendrequestsBtnToggler");
    state = false;
}
$(document).ready(function() {
    // Dette stykke script er til min toolbox.     
    $('#EmFriend').click(function(e) {
        e.stopPropagation();
        if(!$("#EmFriendrequests").is(":visible")) {
            hidePopups();
            $("#EmFriendrequests").show();
            $("#EmFriendrequests").load("friendrequests.php");
            $("#EmFriend").addClass("EmFriendrequestsBtnToggler");
            state = true;
        }else {
            $("#EmFriend").removeClass("EmFriendrequestsBtnToggler");
            $('#EmFriendrequests').hide();
            state = false;
        }
             
    });
});



I den her $("#EmFriendrequests").load("friendrequests.php");
loader jeg en side ind i en div.. Og der er nogle links i.

fx. <a href="profile.php?id=2213">2213</a>

Men jeg kan ikke åbne dette link, i kan se nærmere her på min side:

http://empresa.prowdesign.dk/people/profile.php

ved at klikke på user iconet.


Hvorfor virker det ikke. Det er noget med min jquery code at gøre..

Håber der er nogen der har et svar, eller kan hjælpe mig med det...

Tak...
Avatar billede softspot Forsker
02. november 2010 - 12:42 #1
Er det ikke fordi siden der linkes til, indeholder nøjagtigt det samme som den side du starter på. Såvidt jeg kan se så fungerer linket godt nok (prøv at holde CTRL nede mens du klikker på linket, så burde det åbne i en fane).
Avatar billede softspot Forsker
02. november 2010 - 12:52 #2
Næh, det er fordi du har lagt denne kode ind i sidens load-event:

    $('#EmFriendrequests, #EmNotifications, #EmMessages').click(function() {
        return false;
    });

Det fortryder alle click inde i elementet og dets indeholdte elementer, herunder dine links. Spørgsmålet er så hvorfor du har haft behov for at lægge den kode på popup-elementerne...
Avatar billede kasbas91 Nybegynder
02. november 2010 - 13:21 #3
Den virker skam bare sådan at når man har åbnet en af de icon bokse, så hvis jeg fjerne denne stump kode, så hvis jeg klikke i boksen så lukker den, og det er det den stump kode der gør at den ikke lukker når man klikker på boksen...

;P

Men ja det er der fejlen er, men jeg ved ikke hvordan man skal løse det... ;P
Avatar billede softspot Forsker
02. november 2010 - 13:31 #4
Prøv evt. at bruge

e.stopPropagation();


i stedet for

return false;


i den handler...
Avatar billede softspot Forsker
02. november 2010 - 13:32 #5
Dvs. den skal nok se således ud:

    $('#EmFriendrequests, #EmNotifications, #EmMessages').click(function(e) {
        e.stopPropagation();
    });
Avatar billede kasbas91 Nybegynder
02. november 2010 - 13:36 #6
Hej jo, men nu bliver der intet indhold vist i boksen... ;P
Avatar billede kasbas91 Nybegynder
02. november 2010 - 13:42 #7
Hej jeg har fået det til at virke: ved at sætte denne kode sammen:



    $('#EmFriendrequests, #EmNotifications, #EmMessages').click(function(e) {
        e.stopPropagation();
        if($("#EmFriendrequests").is(":visible")) { }
        if($("#EmNotifications").is(":visible")) { }
        if($("#EmMessages").is(":visible")) { }
    });



Men den kan sikkert helt klar laves bedre og pænere... ;P
Avatar billede softspot Forsker
02. november 2010 - 14:48 #8
OK, hvis effekten af det der ekstra kode, er hvad der skal til for at få det til at fungere, så synes jeg der er mere under motorhjelmen af jQuery end godt er!?

Det giver ikke umiddelbart mening, at et check på om de 3 popup's er synlige skulle løse problemet med propagering af events...

Hvad sker der hvis du blot returnerer true efter stopPropagation?

    $('#EmFriendrequests, #EmNotifications, #EmMessages').click(function(e) {
        e.stopPropagation();
        return true;
    });
Avatar billede kasbas91 Nybegynder
03. november 2010 - 20:45 #9
JA det virkede, tak for det... ;P

Læg et svar, og undskyld det tog så lang tid... ;P
Avatar billede softspot Forsker
03. november 2010 - 22:57 #10
Velbekomme :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester