2017-08-25 6 views
0

Ich habe Code, der ein Element entfernt und den 3-Buchstaben-App-Code zu einem Cookie hinzufügt. Die Site liest dann dieses Cookie, um es beim nächsten Mal nicht zu zeichnen.jQuery remove() Element nicht entfernen

Ich versuche, den Code zu schreiben, so dass das Element aus dem DOM entfernt wird, wenn der Benutzer auf die Schaltfläche "Verbergen" klickt (die in der Div ist, die ich entfernen möchte).

JavaScript

$('.HideLinkButton').click(function(e){ 
e.preventDefault(); 
var Enabled = $(this).hasClass('ButtonToggled'); 
var Favoured = $(this).closest('.Item a').hasClass('btn-favourite'); 
if (!Favoured) { 
    if (Enabled) { 
     removeHiddenLink($(this).closest('.Item').data('application-code')); 
     //$(this).removeClass('ButtonToggled'); 
     $(this).closest('.Item a').removeClass('Hidden'); 
     $(this).closest('.Item').remove(); 

     //Adds hidden to class 
     $(this).closest('.Item a').addClass('Hidden'); 
     $(this).closest('.Item').addClass('Hidden'); 

     //Removes element completely 
     $(this).children('.Item').remove(); 

    } else { 
     //Adds application code to 'hidden'cookie. 
     addHiddenLink($(this).closest('.Item').data('application-code')); 

     //Adds 'buttontoggled' to HideButton div. 
     $(this).addClass('ButtonToggled'); 

     //Removes element completely 
     $(this).children('.Item').remove(); 
    } 
} 

});

$(this).children('.Item').remove(); 

Wenn ich die Seite aktualisieren, wird das Element weg:

Aus irgendeinem Grund die letzte .remove() Linie nicht

über diese ein

Ich rede nicht funktioniert. Dies liegt daran, dass der App-Code in den "versteckten" Cookie gesetzt wurde, also weiß das C# -Skript, dass es nicht auf den Bildschirm geschrieben wird.

Es entfernt das Element einfach nicht, wenn es angeklickt wird.

Ich kann nichts online finden, oder irgendeinen Grund, warum das nicht funktionieren sollte.

Danke!

+1

können Sie den HTML-Code für die Schaltfläche und div schreiben – Niladri

+0

Sorry, ich bin nicht sicher, wie Code-Tags hinzufügen, ich bin neu hier –

Antwort

0

Versuchen Sie, die Linie zu ändern:

$(this).find('.Item').remove(); 
+0

Es spielt keine tun Sie nichts, das Problem gilt immer noch. –

+0

Kann die Klasse .Item kein Kind von $ (this) sein? können Sie etwas wie $ (this) .parent versuchen.(). find ('. Item'). remove(); Versuchen Sie, das DOM nach oben zu verschieben, bis Sie auf die Klasse –

+0

zugreifen können. Ah! Ich änderte es in .closest ('. Item a') und es funktionierte! Vielen Dank! –

Verwandte Themen