elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  jquery desde un archivo js
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: jquery desde un archivo js  (Leído 10,786 veces)
FJDA


Desconectado Desconectado

Mensajes: 323


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #10 en: 29 Abril 2017, 21:12 pm »

no solo porque está una funcion dentro de otra, tambien porque la llamas antes de declararla...

y por eso es bueno mostrar el codigo de buenas a primeras...


no importa esto funcionaría igual

Código:
window.alert(getColorRGB())

 function getColorRGB()
{
var bgcolor=25;
return bgcolor
}


Además esto devolvería UNDEFINED  :(


Código
  1. var bgcolor
  2. $(function(){
  3. bgcolor = $('label').css('background-color');
  4. });
  5.  
  6. function getColorRGB()
  7. {
  8. return bgcolor
  9. }
  10.  
  11. window.alert(getColorRGB())
  12.  
  13.  


« Última modificación: 29 Abril 2017, 21:17 pm por FJDA » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #11 en: 29 Abril 2017, 21:32 pm »

no solo porque está una funcion dentro de otra, tambien porque la llamas antes de declararla...

y por eso es bueno mostrar el codigo de buenas a primeras...

Muy cierto u.u.
angel lex Sacalo de java pls!

--

FJDA. Empecemos otra vez, dime que quieres hacer y veamos si te puedo ayudar, porque ya no entiendo nada.

--
Quieres hacer esto?:

Código
  1. function getColor() {
  2. return bgcolor;
  3. }
  4.  
  5. $(function(){
  6. bgcolor = $('label').css('background-color');
  7. alert(getColor());
  8. });
  9.  


« Última modificación: 29 Abril 2017, 21:35 pm por 3n31ch » En línea

FJDA


Desconectado Desconectado

Mensajes: 323


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #12 en: 29 Abril 2017, 21:39 pm »

Muy cierto u.u.
angel lex Sacalo de java pls!

--

FJDA. Empecemos otra vez, dime que quieres hacer y veamos si te puedo ayudar, porque ya no entiendo nada.


Código
  1. var bgcolor
  2.  
  3. $(function(){
  4. bgcolor = $('label').css('background-color');
  5. });
  6.  
  7.  
  8. function getColorRGB()
  9. {
  10. return bgcolor
  11. }
  12.  
  13. window.alert(getColorRGB())
  14.  
  15.  

a ver, una vez obtenido el colorRGB como lo sacas de aquí
Código:
$(function(){
 bgcolor = $('label').css('background-color');
});

como he puesto CLARISIMAMENTE en el ejemplo la variable bgcolor que he declarado FUERA, no obtiene el valor DENTRO de $(function(){.... TODO lo que está DENTRO se queda dentro. Luego tiene que haber alguna dorma de obtener el valor y sacarlo de $(function(){});

Eso no es mas que un ejemplo, lógico no voy a poner tropecientas líneas de código y funciones. solo necesito sacar el colorrgb usand jquery, pero no hay forma de sacarlo de $(function(){});


NOTA:
He poesteado mi duda aquí porque no he visto ningún subforo de javascript. Hice una pregunte en programación general y no ha contestado ni dios (por ahora) así que he entrado en los más parecido por sintaxis más que otra cosa.
« Última modificación: 29 Abril 2017, 21:57 pm por FJDA » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #13 en: 29 Abril 2017, 21:57 pm »

Nose amigo, yo creo que el ejemplo que te puse ahí hace CLARISIMAMENTE lo que pides.

Pero para hacerlo mas claro:

Código
  1. <!DOCTYPE html>
  2. <title>SITIO WEB</title>
  3. <script type="text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
  4. <script type="text/javascript" src = "js.js"></script>
  5. <link rel="stylesheet" type="text/css" href="css.css">
  6. </head>
  7. <label>Hola Mundo</label>
  8. <button onclick = "alert(getColor())">FUNCION</button>
  9. <button onclick = "alert(bgcolor);">DIRECTO</button>
  10. </body>
  11. </html>
  12.  

Código
  1. function getColor() {
  2. return bgcolor;
  3. }
  4.  
  5. $(function(){
  6. bgcolor = $('label').css('background-color');
  7. });
  8.  

Ojo que yo no le puse "var" a la variable, por tanto el global.
En línea

FJDA


Desconectado Desconectado

Mensajes: 323


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #14 en: 29 Abril 2017, 22:16 pm »

Nose amigo, yo creo que el ejemplo que te puse ahí hace CLARISIMAMENTE lo que pides.

Pero para hacerlo mas claro:

Código
  1. <!DOCTYPE html>
  2. <title>SITIO WEB</title>
  3. <script type="text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
  4. <script type="text/javascript" src = "js.js"></script>
  5. <link rel="stylesheet" type="text/css" href="css.css">
  6. </head>
  7. <label>Hola Mundo</label>
  8. <button onclick = "alert(getColor())">FUNCION</button>
  9. <button onclick = "alert(bgcolor);">DIRECTO</button>
  10. </body>
  11. </html>
  12.  

Código
  1. function getColor() {
  2. return bgcolor;
  3. }
  4.  
  5. $(function(){
  6. bgcolor = $('label').css('background-color');
  7. });
  8.  

Ojo que yo no le puse "var" a la variable, por tanto el global.

No se muy bien porqué desde un EVENTO devuelve valor, pero si lo tiras así devuelve error(bgcolor no está definido) o sea undefined

Código
  1. <body>
  2.  
  3. <label></label>
  4.  
  5. <!-- <button onclick = "alert(getColor())">FUNCION</button>
  6.  
  7. <button onclick = "alert(bgcolor);">DIRECTO</button> -->
  8.  
  9. <script type="text/javascript">
  10. window.alert(getColor())
  11. </script>
  12.  
  13. </body>
  14.  
  15.  

mas claro el agua  :-\

o sea desde script
<script type="text/javascript">
window.alert(getColor())
</script>
« Última modificación: 29 Abril 2017, 22:20 pm por FJDA » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #15 en: 29 Abril 2017, 22:19 pm »

Tiene que ver con lo que te dije yo al inicio y lo que te dijo angel lex.

Pon un console.log() justo cuando asignes el valor y pon otro cuando lo quieras sacar.

Dime cual pasa primero y quizás tengas tu respuesta.
En línea

FJDA


Desconectado Desconectado

Mensajes: 323


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #16 en: 29 Abril 2017, 22:23 pm »

Tiene que ver con lo que te dije yo al inicio y lo que te dijo angel lex.

Pon un console.log() justo cuando asignes el valor y pon otro cuando lo quieras sacar.

Dime cual pasa primero y quizás tengas tu respuesta.

Código:
console.log(bgcolor)
VM118:1 rgb(255, 0, 0)
undefined
console.log(bgcolor())
VM121:1 Uncaught TypeError: bgcolor is not a function
    at <anonymous>:1:13
(anonymous) @ VM121:1
console.log(getColor())
VM171:1 undefined
undefined
En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #17 en: 29 Abril 2017, 22:33 pm »

SCRIPT:

Código
  1. bgcolor = "VALOR INICIAL";
  2. function getColorRGB() {
  3. return bgcolor;
  4. }
  5.  
  6. console.log('LLAMO FUNCION');
  7. console.log(getColorRGB()); // LLAMAR FUNCION
  8.  
  9.  
  10. $(function(){
  11. console.log('ASIGNO VALOR');
  12. bgcolor = $('label').css('background-color'); //ASIGNAR VALOR
  13. console.log(bgcolor);
  14. });


OUTPUT:

Código:
js.js:26 LLAMO FUNCION
js.js:27 VALOR INICIAL
js.js:31 ASIGNO VALOR
js.js:33 rgb(255, 0, 0)

Estas llamando la función antes de sacar el valor.
Por eso yo lo puse en botones, ya que si haces un alert o cualquier cosa antes de asignar el valor o te dará undefined o te dará un error.

Como lo solucionas?
O retrasas el output o haces antes el input.

Como haces eso?
Hacer antes el input sera mas complicado ya que necesitaras que jquery y el documento HTML cargue antes que tu output.

Por tanto retrasare el output:

Código
  1. bgcolor = "VALOR INICIAL";
  2. function getColorRGB() {
  3. return bgcolor;
  4. }
  5.  
  6. setTimeout(function(){
  7. console.log('LLAMO FUNCION');
  8. console.log(getColorRGB()); // LLAMAR FUNCION
  9. },500);
  10.  
  11.  
  12. $(function(){
  13. console.log('ASIGNO VALOR');
  14. bgcolor = $('label').css('background-color'); //ASIGNAR VALOR
  15. console.log(bgcolor);
  16. });
  17.  


Funcionara siempre y cuanto todo cargue antes de los 500ms.

Pero esto es un parche, lo mejor seria hacer tu alert despues de que cargue con $(function(){});

Ahi te lo puedes ingeniar.
En línea

FJDA


Desconectado Desconectado

Mensajes: 323


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #18 en: 29 Abril 2017, 22:56 pm »

amigo ves pues no es tan fácil ...

antes que postearas estaba haciendo esto:
Código
  1. // var bgcolor  //con esto no dará error pero devuelve Undefined
  2. function getColor() {
  3. return ;
  4. }
  5.  
  6. $(function(){
  7. bgcolor = $('label').css('background-color');
  8.  
  9. });
  10.  
  11. function crearObjeto(){
  12. var parrafo= document.createElement('p');
  13. parrafo.id="parrafo"
  14. document.body.appendChild(parrafo)
  15. var objeto= document.getElementById('parrafo');
  16. objeto.style.position="absolute";
  17. objeto.style.marginTop="250px";
  18.  
  19. objeto.innerText=getColor(); //undefined
  20. objeto.innerText=bgcolor; //Error:bgcolor no está definido
  21. }
  22.  


'Creo un objeto, el cual mostrará el RGB, ya que no trato de mostrar el valor  desde un mensaje si no desde un párrafo.

Curiosamente así funciona de lujo pero.... es raro si quito getColor() que no hace nada jquery no obtiene el background, o sea que es lo que tu dices, se carga antes de que obtenga el color y con esta "pirula" lo lee;


function getColor() {
   return  null;
}

 
$(function(){
   bgcolor = $('label').css('background-color');

   var parrafo= document.createElement('p');
   parrafo.id="parrafo"
   document.body.appendChild(parrafo)
   var objeto= document.getElementById('parrafo');
   objeto.style.position="absolute";
   objeto.style.marginTop="250px";

   objeto.innerText=getColor();
   objeto.innerText=bgcolor;

});




en el httml

...
script type="text/javascript">
getColor();
</script>


tachado esto no hace falta


rectifico simplemente esto:

Código
  1. $(function(){
  2. bgcolor = $('label').css('background-color');
  3. var parrafo= document.createElement('p');
  4. parrafo.id="parrafo"
  5. document.body.appendChild(parrafo)
  6. var objeto= document.getElementById('parrafo');
  7. objeto.style.position="absolute";
  8. objeto.style.marginTop="250px";
  9. objeto.innerText=bgcolor;
  10. });


Pero ahí está el problema yo quiero crear un objeto div dentro de el objetos y quiero poder llamar a una función y asignarme parámentros como el contenedor donde se creará el div, pero no puedo trabajarlo estando todo en dentro $(function(){....



ostras si que funciona, ahora tengo que comprobar porque en mi código no.  :-X

esto ya va bien así;

Código
  1. function Prueba(objeto){
  2. $(function(){
  3. bgcolor = $('label').css('background-color');
  4. var parrafo= document.createElement('p');
  5. parrafo.id="parrafo"
  6. document.body.appendChild(parrafo)
  7. var objeto= document.getElementById('parrafo');
  8. objeto.style.position="absolute";
  9. objeto.style.marginTop="250px";
  10. objeto.innerText=bgcolor;
  11. });
  12. };
  13.  

y en el HTML

Código
  1. <div id="contenedor"></div>
  2. <script type="text/javascript">
  3. var dv= document.getElementById('contenedor');
  4. Prueba(dv)
  5.  

gracias por vuestra paciencia  :P

@3n31ch me has ayudado mucho  ;-)
« Última modificación: 29 Abril 2017, 23:11 pm por FJDA » En línea

3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: jquery desde un archivo js
« Respuesta #19 en: 29 Abril 2017, 23:15 pm »

Disculpa, creo que no te entendí muy bien....

Lo que entiendo es que quieres hacer tu código fuere de $(function(){}); pero también necesitas tener el bgcolor del label.

Lo que pasa es que no puedes tener el bgcolor del label antes de que este se cargue. Por tanto requieres de: $(function(){});

Por otro lado, puedes hacer perfectamente todas tus funciones fuera del $(function(){});

-- TE PONGO ESTE CÓDIGO AUNQUE DUDO QUE TE AYUDE, PORQUE NO ENTIENDO BIEN LO QUE QUIERES

Código
  1. bgcolor = null;
  2.  
  3. function crearObjeto() {
  4. $('body').append('<p id = "parrafo">'+bgcolor+'</p>');
  5. $('#parrafo').css('position', 'absolute');
  6. $('#parrafo').css('margin-top', '250px');
  7. }
  8.  
  9. $(function(){
  10. bgcolor = $('label').css('background-color');
  11. crearObjeto();
  12. });
  13.  

--
NO PRESTES ATENCIÓN A LO ANTERIOR, NO ME FIJE QUE MODIFICASTE TU MENSAJE
« Última modificación: 29 Abril 2017, 23:18 pm por 3n31ch » En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Alguien me puede ayudar desde cero como instalar una galeria JQUERY
Desarrollo Web
zenydark 1 4,951 Último mensaje 11 Abril 2011, 03:06 am
por Nakp
ayuda con el id de un archivo externo jquery y php
PHP
geshiro 0 1,402 Último mensaje 5 Octubre 2015, 05:32 am
por geshiro
ayuda con el id de un archivo externo jquery y php
PHP
geshiro 0 1,507 Último mensaje 7 Octubre 2015, 23:20 pm
por geshiro
Llamar funcion de una clase php desde jquery
PHP
Ethgar 2 10,742 Último mensaje 26 Noviembre 2015, 18:04 pm
por #!drvy
[Pregunta]: Jquery acumular desde arriba
Desarrollo Web
Leguim 0 1,497 Último mensaje 25 Febrero 2019, 07:16 am
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines