8
votes

JQuery Set Focus sur le contenu dynamique?

dans jQuery j'ai ajouté un

  • élément à une liste non ordonnée.

    Comment puis-je vous concentrer sur le nouvellement créé

  • ?

    Si je fais ce qui suit: xxx

    La mise au point ne fonctionne pas, comme indiqué ci-dessus.

    Je sais JQuery 1.4.2 A un Live () manutention d'événements qui vous permet de charger des gestionnaires d'événements à des éléments ajoutés de manière dynamique, mais je ne sais pas ce que je fais mal: xxx


  • 3 commentaires

    L'élément est un élément vide , il ne doit pas avoir d'étiquette de fin. Vous voulez probablement mettre hi! dans un attribut de valeur.


    @David, merci. Ce n'est pas le code réel, mais je vais le réparer de toute façon.


    2500 vues et non un seul uppot. BON TEMPS.


    3 Réponses :


    7
    votes

    Vous ne pouvez définir que la mise au point sur les éléments qui peuvent contenir la mise au point. Par défaut, un élément de liste ne peut pas. C'est pourquoi votre premier exemple échoue, pas parce que ce n'est pas dans le DOM (il est dans le DOM, c'est ce que append fait)

    En général, vous devez utiliser des éléments conçus pour contenir la mise au point (c'est-à-dire < définissez la mise au point sur l'entrée non de la liste ). Vous pouvez également (mais cela est moins compatible et moins logique), utilisez HTML5's Tabindex (le réglage probablement à 0 ).

    Onload ne fonctionnera pas car les éléments de liste ne chargent pas de contenu externe.


    0 commentaires

    1
    votes

    Vous pouvez essayer ceci, $ (Yourelement) .trigger ("Focus") .


    0 commentaires

    0
    votes

    Ceci est un ancien poste que je connais, mais un moyen simple de résoudre ce problème est de créer une entrée de texte dans votre HTML et de définir son CSS sur "Afficher: Aucun;". Dans l'événement de clic de LI, définissez la mise au point de cette entrée et écoutez ses événements KeyPress.

    Je l'ai fait et ça marche comme un charme.


    0 commentaires