2012-08-10 11 views
5

to jest mój kod ... append działa, ale usuwanie nie działa. jak usunąć dołączony div?usuwanie elementu div dołączonego przy użyciu metody append

<html> 
    <head> 
    <script type="text/javascript"> 
     function view(){ 
     $('body').append('<div class="added"><p>something</p></div>'); 
     }; 
     function close(){ 
     $('.added').remove(); 
     } ; 
    </script> 
    </head> 
    <body> 
    <a onclick="view();">something</a> 
    <a onclick="close();">close</a> 
    </body> 
</html> 
+0

napisałem kod diff przez mistake..this jest mój kodu teraz ... co nie działa – user1531746

Odpowiedz

5

Określ window.close w swojej obsługi html:

<a onclick="window.close();">close<a> 

http://jsfiddle.net/ZTwd7/1/

Inaczej close() odnosi się do natywnego close sposobu, który nic nie robi.

Oto jak można naśladować go z „Javascript” (w przeciwieństwie do inline HTML atrybutu) Handler:

elem.onclick = function(event) { 
    with(Window.prototype) { 
     with(document) { 
      with(this) { 
       close(); 
      } 
     } 
    } 
}; 

To nie jest dokładna reprodukcja (nie działa w IE, etc, że nie o to chodzi), ale wstawiłby .close w Window.prototype przed globalnym window.close w zasięgu, więc cienie go. Wciąż możesz odnieść się do niego wyraźnie pod numerem window.close().


Należy również całkowicie upuścić powyżej użyć jQuery zamiast:

<a id="view">something<a> 
<a id="close">close<a> 

JS:

$(function() { 
    $("#view").click(function() { 
     $('body').append('<div class="added"><p>something</p></div>'); 

    }); 
    $("#close").click(function() { 
     $('.added').remove(); 

    }); 
});​ 

http://jsfiddle.net/ZTwd7/5/


złożenie żądania ajax, że pobiera html fi le mają być dołączone:

$.get("myhtml.html", function(html) { 
    $("body").append(html); 
}, "html"); 
+0

Cóż, robi to w swojej funkcji ... - Przepraszam, po prostu przeczytaj twój komentarz, nie wiedziałem, że zmienił swój kod. – SamiSalami

+0

który działa, ale czy możesz wyjaśnić ... jak dodać "okno", dzięki czemu działa dobrze? – user1531746

+0

@ user1531746, ponieważ 'window.close' jest cieniowany przez' Window.prototype.close'. Kolejny powód, dla którego należy unikać programów obsługi html, mają wiele "z" magią. – Esailija

1

Nie wiem dlaczego, ale przez wprowadzenie innej nazwy do funkcji zamiast blisko (zamknij) działa

<html> 
    <head> 
<script src="http://code.jquery.com/jquery-latest.js"></script> 

    <script type="text/javascript"> 
      function view(){ 
        $('body').append('<div class="added"><p>something</p></div>'); 
      }; 
      function close_it(){ 
             $('.added').remove(); 

      } ; 

    </script> 
</head> 
<body> 
    <a onclick="view();">something<a> 
    <a onclick="close_it();">close<a> 
</body></html> 
Powiązane problemy