none
Jquery no funciona RRS feed

  • Pregunta

  • Hola a todos,
    les cuento que intente utilizar jquery en mi aplicacion web de .net y ha sido una experiencia traumatica, ya que el jquery solo funciona si los scripts estan en la misma pagina que se necesitan o sea en un archivo .aspx, cuando creo un archivo .js aparte el bendito jquery no funciona ni siquiera genera errores. pero no hace nada.
    Les agradeceria mucho si me pudieran ayudar en este punto, pues tambien ha sido un problema hacer funcionar el jquery con masterpages.
    Les agradezco mucho su ayuda si me pueden guiar en como hacer funcionar el jquery en un archivo independiente al .aspx.



    Gracias.
    jin
    viernes, 27 de noviembre de 2009 15:19

Respuestas

  • Hola Leandro, muchisimas gracias por tu ayuda y tus respuestas las voloro mucho y me han sido de muchisima ayuda.

    Te explico lo que queria decir en mi post anterior,
    Cuando digo que gano mas peso en mi formulario .aspx y que el envio por la red sea lento, es por lo siguiente, mis formularios tienen un peso ( en KB ) que tengo que respetar y no sobrepasar por politicas de mi cliente y en el momento que comenzaba a declarar variables de la forma en la que tu me suguieres:

    <script type="text/javascript">

        var chasquido = '<%#=rblChasquido.ClientID %>';

    </script>
     

    el tamaño de mi formulario .aspx crece en KB, ya que cada formulario tiene muchos controles, y al hacer las peticiones al servidor la red de mi cliente se congestiona un poco por no tener el tamaño en KB que el me suguiere.

    El problema lo pude solucionar con javascript puro ya que con este javascript envio el ClientID de mis controles y puedo comenzar a trabajar normalmente, mientras que si lo hacia con jquery tendria que declarar todos los controles de mi formulario como "var" y como ya te comentaba el tamaño de mi .aspx crecia. Entonces decidi hacer funciones javascripts normales.

    Y claro se que hay dos mundos el de asp.net y el javascript en el cliente, y es este ultimo en su estado puro el que me ha ayudado a optimizar mi aplicacion ya que con jquery no pude hacer las implementaciones que deseaba por lo que utilizaba masterpages.

    No estoy diciendo que jquery sea malo al contrario me ha parecido muy bueno, y lo estoy estudiando y practicando en mis tiempos libres, pero en la palicacion que estoy desarrollando no pude hacer una implementacion optima de esta tecnologia.


    Nuevamente muchas gracias por tus respuestas y colaboracion.
    jin
    miércoles, 2 de diciembre de 2009 15:29

Todas las respuestas

  • hola

    recuerda que los archivos js que crees de forma externa debes tener la linea de include en las paginas donde lo usaras

    o sea si tienes un js que has creado debes incluir la linea

    <script src="../scripts/jquery-1.3.2.min.js" type="text/javascript"></script>

    en la pagina, o el masterpage

    el problema segurametne pase por la ruta relativa a los archivos de script

    como veras en el ejemplo use ../ o sea del nivel en dodne estoy o sea una carpeta sube un nivel y luego encuantre la carpeta "scripts" en donde esta el archivo

    si usas esta linea en la master puede que no funcione para todas las paginas ya que dependera del nievel en dodne esta se encuentre


    ejemplo:

    root
         masterpage.master
         scripts
                 jquery-1.3.2.min.js
         views
                compras.aspx
                articulos.aspx
         personal.aspx


    como veras si en el master agregas la linea


    <script src="../scripts/jquery-1.3.2.min.js" type="text/javascript"></script>

    y en asl tres paginas usas el master page, en compras.aspx, y articulos.aspx funcionara perfecto
    pero con la pagina personal.spx no, ya que no se encuentra al mismo nivel


    por ahi lo que podrias hacer es definir e tu aplciacion por defecto simrpe poner un nievel de carpetas en donde esten contenidas las paginas asi el ../ funciona siempre


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 27 de noviembre de 2009 15:39
  • Gracias Leandro por tu respuesta,
    efectivamente asi lo estoy haciendo
    Mira:

    <

     

    script src="../ClientScript/jquery-1[1].3.2.min.js" type="text/javascript"></script>
    <
    script src="../ClientScript/ScriptEspecialidades.js" type="text/javascript"></script>

    la primera referencia es la jquery y la segunda es la del archivo donde he intentado desarrollar las funciones de jquery para que funcionen en mi pagina, una funcion tan simple como esta:

    jQuery(document).ready(

    function()

    {

    $(

    "<%#=rblChasquido.ClientID %>").bind

    (

    "click",

     

    function()

    {

    alert(

    "Hola desde jquery");

    }

    });

    he hecho debug de los scripts y ni siquiera llega a los puntos de interrupcion pareciera que no lo reconoce los scripts, pero si hago una llamada a un evento onclick al archivo independiente a una de las funciones javascript normales puedo depurar normalmente sin problemas pero con jquery no puedo ni depurar ni funcionan los scripts.


    jin
    viernes, 27 de noviembre de 2009 17:42
  • hola

    pro estos script que dices que no son con jquery y que funcionan donde los has desarrollado es en un archivo .js, o es en la misam pagina ?

    este codigo que ahs posteado donde lo ash escrito es en la misma pagina?
    o esta en un archivo .js

    - lo pregunto porque si esta en un archivo el <%#=rblChasquido.ClientID %> no funciona

    en realudadi lo que deberias hacer es dejar en la pagina un bloque como ser

    <script type="text/javascript">

        var chasquido = '<%#=rblChasquido.ClientID %>';

    </script>



    lo de arriba en tu pagina

    y luego en el archivo lo usarias:

    $(chasquido).click(function(){

        alert("Hola desde jquery");

    });



    esto se da porque el rende asp.net solo lo aplica al aspx, no a los js.
    por eso lo quu haces es dejar en una variable javascript el nombre de control para luego si usarlo en la seelccion dentro del archivo



    - ademas deberias probar con 

    $().ready(function(){

    });


    en lugar de usar:

    jQuery(document).ready


    saluds
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 27 de noviembre de 2009 18:08
  • Hola Jorge!

    ¿Fue posible solucionar su problema?

    Gracias!

    Rafael Fagundes - Marque la respuesta como correcta si te ha sido de utilidad!
    miércoles, 2 de diciembre de 2009 13:15
    Moderador
  • Hola Rafael
    No la verdad no pude hacer la implementacion de jquery, ya que debo hacer el desarrollo cliente en un archivo aparte de mis formularios .aspx, tambien mis formularios utilizan masterpages y para llevar los datos desde el formulario hasta el archivo donde estan las funciones de jquery me tocaria declarar variables de cada uno de los controles que utilizo en las funciones de jquery, lo que hace que mi pagina gane mas peso y el envio por la red sea lento. Lo que decidi fue utilizar javascript puro, el normalito.

    De todos modos muchisimas gracias a todos por sus respuestas.
    jin
    miércoles, 2 de diciembre de 2009 14:09
  • hola

    pero, gane en peso ?
    envio por la red sea lento ?

    ehh la verdad no lo creo, recuerda que los archivos de jquery son cacheados por el propio browser, por lo tanto los .js no son enviados cada vez al cliente, salvo si detecta una actualizacion, o sis e vence el cache

    la verdad es que con no entendi como javascript puro pudo solucionar el problema y con jquery no, si es que jquery justamente es una libreria que utiliza javascript de forma intensiva, justamente jquery nacio para hacer facil javascript

    o sea la solucion de declarar cada control en la pagina de esta forma

    <script type="text/javascript">

        var chasquido = '<%#=rblChasquido.ClientID %>';

    </script>


    tambien lo debiste haber realizado si trabajas con javascript puro ya que estas uniendo dos mundos el de asp.net en els ervidor y el del javascript en el cliente


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 2 de diciembre de 2009 14:37
  • Hola Leandro, muchisimas gracias por tu ayuda y tus respuestas las voloro mucho y me han sido de muchisima ayuda.

    Te explico lo que queria decir en mi post anterior,
    Cuando digo que gano mas peso en mi formulario .aspx y que el envio por la red sea lento, es por lo siguiente, mis formularios tienen un peso ( en KB ) que tengo que respetar y no sobrepasar por politicas de mi cliente y en el momento que comenzaba a declarar variables de la forma en la que tu me suguieres:

    <script type="text/javascript">

        var chasquido = '<%#=rblChasquido.ClientID %>';

    </script>
     

    el tamaño de mi formulario .aspx crece en KB, ya que cada formulario tiene muchos controles, y al hacer las peticiones al servidor la red de mi cliente se congestiona un poco por no tener el tamaño en KB que el me suguiere.

    El problema lo pude solucionar con javascript puro ya que con este javascript envio el ClientID de mis controles y puedo comenzar a trabajar normalmente, mientras que si lo hacia con jquery tendria que declarar todos los controles de mi formulario como "var" y como ya te comentaba el tamaño de mi .aspx crecia. Entonces decidi hacer funciones javascripts normales.

    Y claro se que hay dos mundos el de asp.net y el javascript en el cliente, y es este ultimo en su estado puro el que me ha ayudado a optimizar mi aplicacion ya que con jquery no pude hacer las implementaciones que deseaba por lo que utilizaba masterpages.

    No estoy diciendo que jquery sea malo al contrario me ha parecido muy bueno, y lo estoy estudiando y practicando en mis tiempos libres, pero en la palicacion que estoy desarrollando no pude hacer una implementacion optima de esta tecnologia.


    Nuevamente muchas gracias por tus respuestas y colaboracion.
    jin
    miércoles, 2 de diciembre de 2009 15:29
  • Hola, no necesitas cachar las variables del formulario como lo indicas, puedes recorrer los campos del formulario con tres líneas de código y obtener un objeto JSON el cual se puede enviar sin problemas con JQuery, con 4 líneas de Javascript usando JQuery haces eso, saludos!
    viernes, 4 de diciembre de 2009 23:45