javascript – jQuery.hoverDelay.js Plugin no detecta nuevos elementos añadidos

Estoy usando jQuery.hoverDelay.js plugin para retrasar el hover, funciona pero cuando añado nuevos elementos no los detecta.

El ejemplo desde su pagina es sencillo:

HTML

<ul id="demo-menu">
  <li class="menu-item" style="">Lorem</li>
  <li class="menu-item">Ipsum</li>
  <li class="menu-item">Dolor</li>
  <li class="menu-item">Sit</li>
  <li class="menu-item" style="">Amet</li>
</ul>

jQuery:

$('#demo-menu li').hoverDelay({
  delayIn: 200,
  delayOut:700,
  handlerIn: function($element){
      $element.css({backgroundColor: 'red'});  
  },
  handlerOut: function($element){
      $element.css({backgroundColor: 'auto'});  
  }
}); 

Se que en Jquery se debe usar $(document).on para los nuevos elementos añadidos, pero no entiendo como aplicarlo con la funcion hover de este Plugin.

¿Alguna idea?

$(document).on('click','button',function(e) {
  // Codigo
});

Codigo del plugin de pocas lineas.:

$.fn.hoverDelay = function(options) {
var defaultOptions = {
    delayIn: 300,
    delayOut: 300,
    handlerIn: function(){},
    handlerOut: function(){}
};
options = $.extend(defaultOptions, options);
return this.each(function() {
    var timeoutIn, timeoutOut;
    var $element = $(this);
        $element.hover(
            function() {
            if (timeoutOut){
            clearTimeout(timeoutOut);
            }
            timeoutIn = setTimeout(function(){options.handlerIn($element);}, options.delayIn);
            },
            function() {
            if (timeoutIn){
            clearTimeout(timeoutIn);
            }
            timeoutOut = setTimeout(function(){options.handlerOut($element);}, options.delayOut);
            }
        );
});
};

Página del plugin: http://ronency.github.io/hoverDelay/

javascript – El querySelectorAll no detecta mis clases o mejor dicho nada

Tengo un problema con mi querySelectorAll, estoy elaborando un popup con diferentes productos, entonces para que en cada producto el popup tenga diferente contenido he ocupado la funcion, pero por alguna razon no me muestra nada. No se, si yo estoy utilizando mal la función o no abarca todo. Este es mi codigo html.

<div>
        <div class="contenedor-prod card col-3 col-t-6">
            <img class="producto" src="https://es.stackoverflow.com/img/peluche1.jpg" alt="">
            <div class="imag_overlay">
                <div class="img_titulo">Peluche Puppy</div>
                <p class="img_descripcion">
                    Precio: $6.50
                </p>
            </div>
            <div class="centrarboton"><button class="botondetalles">Agregar a carrito</button></div>
        </div>
        <div class="popup-view">
            <div class="popup-card">
                <a href="#" class="bcerrarpopup">X</a>
                <div class="producto-img">
                    <img src="../img/peluche1.jpg" alt="">
                </div>
                <div class="info">
                    <h2>Peluche de cachorro<br><span>Felpa</span></h2>
                    <p>Descripcion</p>
                    <h3>$6.50</h3>
                </div>
            </div>
        </div>
    </div>

Aquí esta mi código js

var popupViews = document.querySelector('.popup-view');
        
        var popupBtns = document.querySelector('.botondetalles');
        
        var closeBtns = document.querySelectorAll('.bcerrarpopup');
        
    
        //javascript for quick view button
        var popup = function(popupClick){
          popupViews(popupClick).classList.add('activar');
        }
    
        popupBtns.forEach((popupBtn, i) => {
          popupBtn.addEventListener("click", () => {
            popup(i);
          });
        });
    
        //javascript for close button
        closeBtns.forEach((closeBtn) => {
          closeBtn.addEventListener("click", () => {
            popupViews.forEach((popupView) => {
              popupView.classList.remove('activar');
            });
          });
        });

javascript – La API de YouTube no me detecta el evento de play

¿Por qué el evento de play de mi video no es detectado? quiero que al reproducir el video, una declaración se active, pero no pasa nada ¿dónde está el error?

este es el reproductor con el video

<iframe src="https://www.youtube.com/embed/ntjjEzhr1wc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

El enlace de la Api

<script src="https://www.youtube.com/iframe_api"></script>

El codigo de la API

<script>
var player;
function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        videoId: 'ntjjEzhr1wc',
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
}
function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING) {
        console.log("event detected");
    }
}
</script>

javascript – if no detecta que tenga un valor a 9999

Ahora mismo estoy recreando una pelea de un famoso videojuego en la que , si el programa detecta que el jugador tiene 9999 de vida, los hechizos de recuperación no hacen efecto. Sin embargo, si tiene menos, le da +1% cada segundo durante X.

Aquí tengo el fragmento del código:

rec.addEventListener('click',()=>{
                
                let recu = setInterval(function(arma_hp, pj_hp, arma_vel, pj_vel, res){

                    if(pj_hp == 9999){
                        document.querySelector('.healed').innerHTML='MERMA';
                        setTimeout(function(){document.querySelector('.healed').innerHTML=""},50);
                    } 
                    else {
                        let san = parseInt(9999/1.50);
                        pj_hp = pj_hp+san;
                        document.querySelector('.healed').innerHTML=san;
                        setTimeout(function(){document.querySelector('.healed').innerHTML=""},50);

                            if(pj_hp > 9999){
                                pj_hp = 9999
                            }
                    }
                },100);
                let cls = setInterval(function(){clearInterval(recu); clearInterval(cls)},10000);


                document.querySelector('.au-content').innerHTML = '';
                setTimeout(function(){selectTurn(arma_hp, pj_hp, arma_vel, pj_vel, res)},3000);
            });

Lo primero que el primer if, no detecta bien si el pj está a 9999, ya que, en los dos primeros turnos, lo va a estar. Y le cura, a parte de no un 1%, casi un 60%. Ya me contaréis el por qué del asunto.

No se qué parte del código tengo mal y llevo ayer atascado con ello y yo juraría que está bien. Eso si, no funciona como yo quiero que funcione.

Respecto a la operación de let san, ahora mismo está en 9999/1.5, pero anteriormente la puse a 9999/1.99 y nada tampoco, ni 1% ni nada.

¿Qué tengo mal planteado?

bash – if else no detecta variable

Estoy intentando ver porque no funciona el siguiente if else.
La variable VALUE parece que funciona correctamente, pero al entrar en el if else, no detecta el valor de “true”

VALUE=$(curl -s http://${HUE}/api/${API}/lights/${LIGHT} | jq --compact-output -C '.state.on')
echo $VALUE

if ( "${VALUE}" == "true" ); then
  echo "${VALUE} | on | Active=1"
else
  echo "${VALUE} | off | Active=0"
fi

El resultado es:

true
true | off | Active=0

porque no entra en la primera condición si el valor de VALUE es “true” ?
Si activo modo debug:

+ VALUE='true'
+ echo 'true'
true
+ '(' 'true' == true ')'
+ echo 'true | off | Active=0'
true | off | Active=0

Que le pasa al código para que no entre en la primera condición?

Gracias

linux – Despues de mandar un paquete UDP el listener no detecta mas (NetCat)

tengo el sigueinte problema

En la maquina B (192.168.200.4)
ejecuto nc -u -l 9999```` y en la maquina A (192.168.200.3) ejecuto echo “hola” | nc -u -w1 192.168.200.4 9999““

Seguidamente , B recibe el “Hola” de A, pero si luego (con B aun escuchando), vuelvo a ejecutar el comando, A no recibe nada (ni vuelve a recibir).

Mi objectivo es que B siga escuchando y poder mandar ese “hola” las veces que quiera y ser recibido

Por qué mi código no detecta los asteriscos escapados?

They chose a list of labels and elements that are used to print regular packages and tooltip tools * no me está funcionando, scolds me for the Como Caracter Puntoen vez de Sign Asterisco, ¿Qué habrá podido salir mal en el código?

var predefined_list = [/^\d$/, /^d+$/, /^*$/, /^\*$/, /^+$/, /^.$/, /^\.$/];
var descriptions = ["un dígito", "numero literal", "cualquier cantidad de veces", "caracter asterisco", "1 o más veces", "cualqueir caracter", "caracter punto"];

var lastAddedElement = null;

$ ("input"). tags input ({
allowDuplicates: true,
Confirmation code: [13, 32],
trimValue: true,

});

$ ("# category-input"). on ("beforeItemAdd", function (event) {
var item = event.item;
for (var validElement of predefined_list) {
if (validElement.test (item)) {
lastAddedElement = item;
Return;
}
}
event.cancel = true;
lastAddedElement = null;
});

$ ("# category-input"). on ("itemAdded", function (event) {
// console.log ("item added:" + event.item);

for (var [index, validElement] of predefined_list.entries ()) {
if (validElement.test (event.item)) {
console.log (`$ {validElement.toString ()}) at index $ {index} => $ {descriptions[index]} `);
console.log (`validElement.toString (): $ {validElement.toString ()}`)
console.log (`event.item.toString (): $ {event.item.toString ()}`);
console.log (`lastAddedElement: $ {lastAddedElement.toString (). replace (& # 39; \ & # 39 ;, & # 39; \ & # 39;)}`)
$ (`.label-info: contains ($ {lastAddedElement.toString (). replace (& # 39; \ & # 39 ;, & # 39; \ & # 39;)}). load (). attr ("title", descriptions.)[index] || "ola k ace");
break;
}
}


});
.Label {
Color white;
Right edge: 2px;
}

.label-info {
Background color: rgb (134, 92, 222);
}

.Etiquette {
Display: Inline;
Font size: 75%;
Written weight: 700;
Line height: 1;
Color: rgb (255, 255, 255);
Align text: center;
White space: Nowrap;
align vertically: baseline;
Upholstery: 0.2em 0.6em 0.3em;
Boundary radius: 0.25 em;
}