ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.2 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://www.carloscarrascal.com/blog/eventos-para-cambios-de-visibilidad-en-jquery |
| Last Crawled | 2026-04-18 16:00:35 (5 days ago) |
| First Indexed | 2017-07-12 12:55:08 (8 years ago) |
| HTTP Status Code | 200 |
| Content | |
| Meta Title | Eventos para cambios de visibilidad en JQuery | carloscarrascal.com |
| Meta Description | Este artículo es básicamente una traducción de este original en inglés: http://viralpatel.net/blogs/jquery-trigger-custom-event-show-hide-element/ |
| Meta Canonical | null |
| Boilerpipe Text | Este artículo es básicamente una traducción de este original en inglés:
http://viralpatel.net/blogs/jquery-trigger-custom-event-show-hide-element/
En un caso bastante particular necesitaba detectar si cambiaba la visibilidad de un elemento del DOM que venia de una librería externa de JS. Después de dar algunas vueltas encontré una solución bastante elegante, publicada hace bastante tiempo. No he visto nada parecido en castellano, y hay algunos hilos en Stackoverflow, pero con soluciones bastante extrañas, así que lo publicaré aquí.
Con este bloque de código Javascript podemos registrar los eventos 'hide' y 'show' con la función .on() de JQuery como hacemos con cualquiera de los eventos estándar, de forma que podemos ejecutar nuestro código cuando se produzcan.
(function ($) {
$.each(['show', 'hide'], function (i, ev) {
var el = $.fn[ev];
$.fn[ev] = function () {
this.trigger(ev);
return el.apply(this, arguments);
};
});
})(jQuery);
Una vez incluyamos este código, podemos registar los eventos usando un selector, de la manera tradicional:
$('#foo').on('show', function() {
console.log('#foo es visible');
});
$('#foo').on('hide', function() {
console.log('#foo esta oculto');
});
El código del ejemplo completo sería algo así.
Código HTML
<button id="btnMostrar">Mostrar</button>
<button id="btnOcultar">Ocultar</button>
<div class="contenedor">
<div id="foo">
Elemento #foo
</div>
</div>
<div id="console">
</div>
Código CSS
.contenedor {
height:60px;
margin:10px;
}
#foo {
background-color:#eeeeee;
width:150px;
height:50px;
text-align:center;
font-size:20px;
}
Código Javascript
// Codigo para registrar eventos hide y show
(function ($) {
$.each(['show', 'hide'], function (i, ev) {
var el = $.fn[ev];
$.fn[ev] = function () {
this.trigger(ev);
return el.apply(this, arguments);
};
});
})(jQuery);
// Mostrar elemento #foo al hacer click en el boton mostrar
$('#btnMostrar').click(function(){
$('#foo').show();
});
// Ocultar elemento #foo al hacer click el boton ocular
$('#btnOcultar').click(function(){
$('#foo').hide();
});
// Añadimos evento para imprimir un mensaje al mostrar #foo
$('#foo').on('show', function(){
$('#console').html( $('#console').html() + '#foo es visible'+ '<br>' )
});
// Añadimos evento para imprimir un mensaje al ocultar #foo
$('#foo').on('hide', function(){
$('#console').html( $('#console').html() + '#foo esta oculto'+ '<br>' )
});
Ejemplo
Yo soy #foo |
| Markdown | [Pasar al contenido principal](https://www.carloscarrascal.com/blog/eventos-para-cambios-de-visibilidad-en-jquery#main-content)
[carloscarrascal.com](https://www.carloscarrascal.com/ "Inicio")
Toggle navigation
## Main navigation
- [Inicio](https://www.carloscarrascal.com/)
- [Blog](https://www.carloscarrascal.com/blog "Blog posts")
- [Sobre mí](https://www.carloscarrascal.com/sobre-mi)
1. [Inicio](https://www.carloscarrascal.com/)
2. [Blog](https://www.carloscarrascal.com/blog)
3. Eventos para cambios de visibilidad en JQuery
# Eventos para cambios de visibilidad en JQuery
Jueves, Julio 6, 2017 - 23:02
[JQuery](https://www.carloscarrascal.com/tags/jquery)
[Javascript](https://www.carloscarrascal.com/tags/javascript)
Este artículo es básicamente una traducción de este original en inglés:
<http://viralpatel.net/blogs/jquery-trigger-custom-event-show-hide-element/>
En un caso bastante particular necesitaba detectar si cambiaba la visibilidad de un elemento del DOM que venia de una librería externa de JS. Después de dar algunas vueltas encontré una solución bastante elegante, publicada hace bastante tiempo. No he visto nada parecido en castellano, y hay algunos hilos en Stackoverflow, pero con soluciones bastante extrañas, así que lo publicaré aquí.
Con este bloque de código Javascript podemos registrar los eventos 'hide' y 'show' con la función .on() de JQuery como hacemos con cualquiera de los eventos estándar, de forma que podemos ejecutar nuestro código cuando se produzcan.
```
(function ($) {
$.each(['show', 'hide'], function (i, ev) {
var el = $.fn[ev];
$.fn[ev] = function () {
this.trigger(ev);
return el.apply(this, arguments);
};
});
})(jQuery);
```
Una vez incluyamos este código, podemos registar los eventos usando un selector, de la manera tradicional:
```
$('#foo').on('show', function() {
console.log('#foo es visible');
});
$('#foo').on('hide', function() {
console.log('#foo esta oculto');
});
```
El código del ejemplo completo sería algo así.
## Código HTML
```
<button id="btnMostrar">Mostrar</button>
<button id="btnOcultar">Ocultar</button>
<div class="contenedor">
<div id="foo">
Elemento #foo
</div>
</div>
<div id="console">
</div>
```
## Código CSS
```
.contenedor {
height:60px;
margin:10px;
}
#foo {
background-color:#eeeeee;
width:150px;
height:50px;
text-align:center;
font-size:20px;
}
```
## Código Javascript
```
// Codigo para registrar eventos hide y show
(function ($) {
$.each(['show', 'hide'], function (i, ev) {
var el = $.fn[ev];
$.fn[ev] = function () {
this.trigger(ev);
return el.apply(this, arguments);
};
});
})(jQuery);
// Mostrar elemento #foo al hacer click en el boton mostrar
$('#btnMostrar').click(function(){
$('#foo').show();
});
// Ocultar elemento #foo al hacer click el boton ocular
$('#btnOcultar').click(function(){
$('#foo').hide();
});
// Añadimos evento para imprimir un mensaje al mostrar #foo
$('#foo').on('show', function(){
$('#console').html( $('#console').html() + '#foo es visible'+ '<br>' )
});
// Añadimos evento para imprimir un mensaje al ocultar #foo
$('#foo').on('hide', function(){
$('#console').html( $('#console').html() + '#foo esta oculto'+ '<br>' )
});
```
## Ejemplo
ShowHide
Yo soy \#foo
## Añadir nuevo comentario
## Search
## Relacionado
Lun, 16/10/2017 - 21:19
### [Bootstrap + Less + Gulp para Drupal 8](https://www.carloscarrascal.com/blog/bootstrap-less-gulp-para-drupal-8)
## Tags in Tags
[Audio](https://www.carloscarrascal.com/tags/audio)[Backup](https://www.carloscarrascal.com/tags/backup)[Bootstrap](https://www.carloscarrascal.com/tags/bootstrap)[D7](https://www.carloscarrascal.com/tags/d7)[D8](https://www.carloscarrascal.com/tags/d8)[Database](https://www.carloscarrascal.com/tags/database)[Debian](https://www.carloscarrascal.com/tags/debian)[Dev](https://www.carloscarrascal.com/tags/dev)[Drupal](https://www.carloscarrascal.com/tags/drupal)[Drupalcamp2014](https://www.carloscarrascal.com/tags/drupalcamp2014)[Drupalcon](https://www.carloscarrascal.com/tags/drupalcon)[Drush](https://www.carloscarrascal.com/tags/drush)[email](https://www.carloscarrascal.com/tags/email)[General](https://www.carloscarrascal.com/tags/general)[Git](https://www.carloscarrascal.com/tags/git)[Gulp](https://www.carloscarrascal.com/tags/gulp)[HTTPS](https://www.carloscarrascal.com/tags/https)[Issues](https://www.carloscarrascal.com/tags/issues)[Javascript](https://www.carloscarrascal.com/tags/javascript)[JQuery](https://www.carloscarrascal.com/tags/jquery)[less](https://www.carloscarrascal.com/tags/less)[Linux](https://www.carloscarrascal.com/tags/linux)[Mailgun](https://www.carloscarrascal.com/tags/mailgun)[Migrate](https://www.carloscarrascal.com/tags/migrate)[mp3](https://www.carloscarrascal.com/tags/mp3)[mp3gain](https://www.carloscarrascal.com/en/tags/mp3gain)[MySQL](https://www.carloscarrascal.com/tags/mysql)[PHP](https://www.carloscarrascal.com/tags/php)[RelatedByTerms](https://www.carloscarrascal.com/tags/relatedbyterms)[Rendimiento](https://www.carloscarrascal.com/tags/rendimiento)[Servicios](https://www.carloscarrascal.com/tags/servicios)[Sid](https://www.carloscarrascal.com/tags/sid)[SSL](https://www.carloscarrascal.com/tags/ssl)[utf8mb4](https://www.carloscarrascal.com/tags/utf8mb4)
- [](http://www.drupal.com/)
- [](http://www.w3schools.com/html/html5_intro.asp)
- [](http://getbootstrap.com/)
- [](http://lesscss.org/) |
| Readable Markdown | Este artículo es básicamente una traducción de este original en inglés:
<http://viralpatel.net/blogs/jquery-trigger-custom-event-show-hide-element/>
En un caso bastante particular necesitaba detectar si cambiaba la visibilidad de un elemento del DOM que venia de una librería externa de JS. Después de dar algunas vueltas encontré una solución bastante elegante, publicada hace bastante tiempo. No he visto nada parecido en castellano, y hay algunos hilos en Stackoverflow, pero con soluciones bastante extrañas, así que lo publicaré aquí.
Con este bloque de código Javascript podemos registrar los eventos 'hide' y 'show' con la función .on() de JQuery como hacemos con cualquiera de los eventos estándar, de forma que podemos ejecutar nuestro código cuando se produzcan.
```
(function ($) {
$.each(['show', 'hide'], function (i, ev) {
var el = $.fn[ev];
$.fn[ev] = function () {
this.trigger(ev);
return el.apply(this, arguments);
};
});
})(jQuery);
```
Una vez incluyamos este código, podemos registar los eventos usando un selector, de la manera tradicional:
```
$('#foo').on('show', function() {
console.log('#foo es visible');
});
$('#foo').on('hide', function() {
console.log('#foo esta oculto');
});
```
El código del ejemplo completo sería algo así.
## Código HTML
```
<button id="btnMostrar">Mostrar</button>
<button id="btnOcultar">Ocultar</button>
<div class="contenedor">
<div id="foo">
Elemento #foo
</div>
</div>
<div id="console">
</div>
```
## Código CSS
```
.contenedor {
height:60px;
margin:10px;
}
#foo {
background-color:#eeeeee;
width:150px;
height:50px;
text-align:center;
font-size:20px;
}
```
## Código Javascript
```
// Codigo para registrar eventos hide y show
(function ($) {
$.each(['show', 'hide'], function (i, ev) {
var el = $.fn[ev];
$.fn[ev] = function () {
this.trigger(ev);
return el.apply(this, arguments);
};
});
})(jQuery);
// Mostrar elemento #foo al hacer click en el boton mostrar
$('#btnMostrar').click(function(){
$('#foo').show();
});
// Ocultar elemento #foo al hacer click el boton ocular
$('#btnOcultar').click(function(){
$('#foo').hide();
});
// Añadimos evento para imprimir un mensaje al mostrar #foo
$('#foo').on('show', function(){
$('#console').html( $('#console').html() + '#foo es visible'+ '<br>' )
});
// Añadimos evento para imprimir un mensaje al ocultar #foo
$('#foo').on('hide', function(){
$('#console').html( $('#console').html() + '#foo esta oculto'+ '<br>' )
});
```
## Ejemplo
Yo soy \#foo |
| ML Classification | |
| ML Categories | null |
| ML Page Types | null |
| ML Intent Types | null |
| Content Metadata | |
| Language | es |
| Author | null |
| Publish Time | not set |
| Original Publish Time | 2017-07-12 12:55:08 (8 years ago) |
| Republished | No |
| Word Count (Total) | 432 |
| Word Count (Content) | 313 |
| Links | |
| External Links | 15 |
| Internal Links | 41 |
| Technical SEO | |
| Meta Nofollow | No |
| Meta Noarchive | No |
| JS Rendered | No |
| Redirect Target | null |
| Performance | |
| Download Time (ms) | 244 |
| TTFB (ms) | 244 |
| Download Size (bytes) | 9,307 |
| Shard | 109 (laksa) |
| Root Hash | 12739538991406348309 |
| Unparsed URL | com,carloscarrascal!www,/blog/eventos-para-cambios-de-visibilidad-en-jquery s443 |