2012-08-10 9 views
5

este es mi código ... el complemento funciona, pero la eliminación no funciona. cómo eliminar el div anexado?eliminando el div agregado usando el método de agregar

<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

he escrito código diff mistake..this es mi código en este momento ... que no está funcionando – user1531746

Respuesta

5

Especificar window.close en el controlador html:

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

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

De lo contrario close() se refiere a la close método nativo, que no hace nada.

Así es como le emularlo con un "javascript" (en contraposición a inline atributo HTML) manejador:

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

Ésta no es la reproducción exacta (y tampoco funciona en IE, etc, que no es el punto) pero pondría el .close en Window.prototype en frente del global window.close en el alcance, por lo que lo sombrea. Todavía puede consultarlo explícitamente con window.close().


También debe caer totalmente lo anterior y utilizar jQuery en su lugar:

<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/


formulación de una petición Ajax que obtiene una html fi le que se debe añadir:

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

Bueno, él está haciendo eso dentro de su función ... - Lo siento, solo lea su comentario, no sabía que había cambiado su código. – SamiSalami

+0

que funciona, pero ¿puedes explicarme ... cómo solo agregas 'ventana' para que funcione bien? – user1531746

+0

@ user1531746 porque 'window.close' está sombreado por' Window.prototype.close'. Otra razón para evitar los manejadores de html, tienen mucha magia "con". – Esailija

1

No sabe por qué, pero por poner otro nombre de función en lugar de cerrar (cerrar) funciona

<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> 
Cuestiones relacionadas