2009-06-07 24 views
12

Estoy usando jQuery para anexar algunos JavaScript cuando se expande un elemento.jQuery - Adjuntar JavaScript a una Div

Pero el código JavaScript dentro de la función jQuery está causando que el resto del código jQuery explote.

$(this).parent('li').find('.moreInfo').append('<script>alert("hello");</script>'); 

¿Qué puedo hacer para resolver este problema?

+0

haga el favor de publicar html y contar la finalidad de añadir el guión? – TheVillageIdiot

+0

El HTML no es demasiado aplicable aquí y el propósito del javascript es extraer información de una fuente remota. Pero en lugar de extraer esta información para los más de 70 elementos en mi sitio a la carga, preferiría sacarlo a pedido. – Tim

+0

pero ¿por qué quieres agregar javascript a div? puede buscar el contenido del nodo al hacer clic y anexarlo al div o dentro de él. – TheVillageIdiot

Respuesta

17

Para el JavaScript consumo problemático añadiendo esto:

var str="<script>alert('hello');"; 
str+="<"; 
str+="/script>"; 

$(this).parent('li').find('.moreInfo').append(str); 

De lo contrario una mejor opción será la de alambre plano caso clic de li:

$("ul#myList li").click(function(){ 
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: "url to your content page", 
      data: "{}",//any data that you want to send to your page/service 
      dataType: "json", 
      success: function(msg) { 
       $(this).find('.moreInfo').append(msg); 
      } 
     }); 
}); 

En realidad no sé qué idioma Estas usando. Si usa ASP.NET, lea esto blog por Dave.

2
$(document).ready(function() { 
     $("ul").each(function() { 
      var _list = this; 
      $(_list).find("li").click(function() { 
       var _listItem = this; 
       $(this).animate({ height: 20 }, 300); 
       $(this).append("<script type='text/javascript'>" + "$('.resultsParag').text('I am injected via JS and will not mess up the other JS you have written cause I am a good boy');" + "</" + "script>"); 
      }); 
     }); 
    }); 
2

trate de añadir un \ antes /script y debe resolver su problema.

0

puede tratar de esta manera

$(this).parent('li').find('.moreInfo').append('<script>alert("hello");</' + 'script>');