Maison  >  Questions et réponses  >  le corps du texte

javascript - problème d'exécution d'événement jquery

function tableColor() {
    alert(0) //这里执行
    $(".table tr:odd").css("background", "#f8f8f8");
}  

第一种写法:
tableColor();//执行alert(0),弹出“0”,表格颜色**没有变化**。

第二种写法:
$(function() {
    tableColor();请输入代码
})
//弹出“0”,表格颜色变化了。

Pourquoi différentes méthodes d'écriture produisent-elles des résultats différents ? Logiquement, la même fonction n'en exécutera pas seulement la moitié.

ringa_leeringa_lee2672 Il y a quelques jours1051

répondre à tous(9)je répondrai

  • phpcn_u1582

    phpcn_u15822017-06-26 10:55:33

    $(function(){
    //C'est le code qui est exécuté après le chargement de la page
    })
    Votre première façon d'écrire est qu'il est exécuté avant le chargement de la page, donc le DOM ne changera pas s'il n'est pas détecté. Coloré

    répondre
    0
  • 黄舟

    黄舟2017-06-26 10:55:33

    Le deuxième est l'abréviation de .ready(). Veuillez consulter la documentation pour plus de détails.

    répondre
    0
  • 漂亮男人

    漂亮男人2017-06-26 10:55:33

    Généralement, les références js sont placées dans le <head></head>里面,
    第一种写法执行的时候,页面还没加载完,所以找不到$(".table tr:odd")sélecteur ;
    Le deuxième type est exécuté après le chargement de la page, la couleur du sélecteur peut donc être modifiée.

    Soit utilisez la deuxième méthode, soit ajoutez la référence js à la fin de la page.

    répondre
    0
  • 三叔

    三叔2017-06-26 10:55:33

    Dans la première façon d'écrire, lorsque votre code est exécuté, l'élément table peut ne pas être chargé sur la page, donc l'élément peut ne pas être trouvé, donc il n'y aura pas de changement de couleur.
    La deuxième façon d'écrire est d'attendre que les éléments de la page soient chargés avant d'exécuter votre code. Cela garantit que tous les éléments de la page ont été chargés et que le code peut trouver les éléments requis, donc les modifications correspondantes seront apportées

    .

    répondre
    0
  • 漂亮男人

    漂亮男人2017-06-26 10:55:33

    $(function() {
        // DOM加载完毕
    });

    La différence entre vos deux appels est que la première fois que vous avez appelé $(".table tr:odd") alors que le DOM n'était pas chargé, vous n'avez peut-être pas obtenu l'élément correspondant. Vous pouvez l'imprimer pour voir, mais la deuxième fois, vous l'avez définitivement obtenu.

    Il est recommandé de mettre JS 代码或引入的 JS 文件放在页面底部,<BODY> devant.

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-06-26 10:55:33

    Semblable à la réponse au premier étage, la première façon d'écrire, si elle est placée avant la balise .table et exécutée avant le chargement du dom, le sélecteur $ risque de ne pas pouvoir trouver le dom et la couleur ne peut pas être modifié.

    Quant au second, il est recommandé de vérifier la description du document jquery. Je ne peux pas ouvrir le site officiel de jquery ici, je peux donc le lire depuis un autre endroit
    http://www.css88.com/jqapi-1. ....

    répondre
    0
  • 代言

    代言2017-06-26 10:55:33

    1. Votre première méthode d'écriture consiste à l'exécuter lorsque la balise du document n'a pas été chargée. En d'autres termes, si votre code HTML n'a pas été chargé, vous ajoutez un style à .table tr:odd. Le script js ne saura pas de quel objet il s'agit, il ne sera donc pas défini. L'élément n'a pas fini de se charger. Cependant, il n'y a pas d'erreur de syntaxe dans la fonction, donc l'alerte 0
    2.$(function(){}) sera toujours exécutée, c'est-à-dire qu'elle attendra que le code HTML soit chargé avant d'exécuter la méthode à l'intérieur. le temps, le code HTML a été chargé et le js sera capturé. Quel élément est cet objet afin qu'il puisse être stylisé.
    Référence spécifique : http://www.w3school.com.cn/h.asp

    répondre
    0
  • 高洛峰

    高洛峰2017-06-26 10:55:33

    Cette question se termine

    répondre
    0
  • 迷茫

    迷茫2017-06-26 10:55:33

    La première façon d'écrire :
    tableColor();//Execute alert(0), "0" apparaît, mais le dom n'est pas sélectionné et le code est exécuté ligne par ligne

    La deuxième façon d'écrire : exécuter après le chargement du document
    $(function() {

    tableColor();

    })

    Conclusion, l'introduction de js est placée en bas du document. En plus des fonctions personnalisées, les js internes en html sont écrits en $(function() {}) pour garantir que le code js est exécuté une fois le document terminé. exécuté

    répondre
    0
  • Annulerrépondre