Visualizzazione dei risultati da 1 a 2 su 2

Discussione: jQuery .not

  1. #1

    jQuery .not

    Ciao a tutti sto tentando di far funzionare l'istruzione not ma finora solo testate al muro:

    codice:
    $("html, body").not("input[name=search]").click(function(){
    ....
    });
    il problema è anche se clicco nel campo input i va la funzione invece non deve andare.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,690
    Ciao, non si capisce esattamente quale sia la tua intenzione. Probabilmente ti stai perdendo nella logica di funzionamento del codice jQuery.
    Cosa ti aspetti che faccia il primo selettore $("html, body")?
    E quindi, cosa ti aspetti che faccia quel metodo not() applicato sul risultato di quel selettore?

    Dalla documentazione leggo:
    the .not() method constructs a new jQuery object from a subset of the matching elements.
    Fonte: http://api.jquery.com/not/

    ...e questo:
    This method lets you specify a criteria. Elements that do not match the criteria are returned from the selection, and those that match will be removed.
    Fonte: https://www.w3schools.com/jquery/traversing_not.asp

    In parole povere, da un gruppo di elementi selezionati (il tuo primo selettore), con il .not() vai a rimuovere quelli che rispondono ai criteri usati, in modo da ottenere quindi una selezione di tutti gli elementi restanti del primo selettore.

    Ora, prendendo il tuo primo selettore $("html, body") tu non fai altro che selezionare gli elementi html e body, per cui quel .not("input[name=search]") non ha alcun senso perché cerca di togliere quell'elemento input da un gruppo di elementi in cui non esiste proprio alcun elemento input.

    Non l'ho provato ma credo che con quello script, in sostanza, stai applicando il click all'intera pagina (leggasi: "html, body"). E' probabile quindi che cliccando su qualsiasi contenuto della pagina avvenga quel click.

    Sarebbe più logico se il tuo primo selettore restituisse tutti gli elementi input; una cosa del tipo $("input"). A quel punto avrebbe senso applicare una cosa del tipo .not("[name=search]").
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.