2017-07-08 7 views
0

Dies ist ein Reißverschluss zum vollständigen Projekt QuickLinks.v4Warum werden meine Symbole nicht angezeigt?

ich an einem Projekt zusammenarbeiten wurde, und wir sind zu einem Thema stecken, wollen wir alle das Symbol, um ein Kontextmenü zu haben, die mehrere Möglichkeiten haben, die einzigartig sind jedes Symbol. Wir sind fast fertig, aber jetzt werden die Symbole nicht mehr auf den Bildschirm gezeichnet. Wir arbeiten nur an den ersten 5 zu der Zeit. Dies ist das erste Mal, dass ich mit jQuery arbeite und ich würde mich über jede Hilfe freuen.

Ich werde jetzt Teile des Projekts, die ich für relevant halte, veröffentlichen.

icon.html

<a target="_blank"> 
    <img class="icons" /> 
    <div class="data"> 
      <div> 
       <input type="hidden" class="login" /> 
       <input type="hidden" class="username" /> 
       <input type="hidden" class="password" /> 
      </div> 
    </div> 
</a> 

icon.js

function buildIcons() { 
    var icons = [ 
     ["https://discordapp.com/", "discord-icon", "icons/discord.png", "social", "Discord", 
      [ 
       ["Main Account", "lela_null", "somepass"], 
       ["Bot Account", "Uta Yuki", "somepass"] 
      ] 
     ], 
     ["https://www.youtube.com/", "youtube-icon", "icons/youtube.png", "social", "YouTube", 
      [ 
       ["Main Account", "[email protected]", "somepass"], 
      ] 
     ], 
     ["https://www.facebook.com/?sk=h_chr", "facebook-icon", "icons/facebook.png", "social", "Facebook", 
      [ 
       ["Main Account", "[email protected]", "somepass"], 
      ] 
     ], 
     ["https://www.twitter.com/", "twitter-icon", "icons/twitter.png", "social", "Twitter", 
      [ 
       ["Main Account", "[email protected]", "somepass"], 
      ] 
     ], 
     ["https://mg.mail.yahoo.com/neo/launch?.rand=8647i3s40jpvp", "ymail-icon", "icons/ymail.png", "social", "Yahoo Mail", 
      [ 
       ["Main Account", "[email protected]", "somepass"], 
      ] 
     ] 
    ]; 



    $.get('data/icon.html', function(data) { 
     var icon; 
     icons.forEach(function(iconData, index, array) { 
      console.log(index); 
      icon = $(data).insertAfter("#" + iconData[3]); 
      $(icon).find("img").attr("src", iconData[2]); 
     }); 
    }); 
}; 

script.js

/* get icon id */ 
function buildMenu(iconId) { 
    $("#remove").click(function() { 
     $("#" + iconId).hide(); 
     cancel(); 
    }); 
    $("#menu-title").text($("#"+iconId).data("name")); 
    $("#site-link").attr("href", $("#" + iconId).parent().attr("href")).click(cancel); 
    switch(iconId) { 
    }; 
} 

/* set right click for icons */ 
$(document).ready(function() { 
    buildIcons(); 
    $(".icons").on("contextmenu", function(e) { 
     buildMenu(this.id); 
     $("#contextmenu").show().css({ 
      top: e.clientY, 
      left: e.clientX 
     }); 
     e.preventDefault(); 
    }); 
}); 

function cancel() { 
    $("#contextmenu").hide(); 
} 

Es gibt mehrere Dateien und Code, wenn Sie benötigen, können Sie es oben herunterladen.

Auch die Konsole sagt TypeError: a is null in meiner jQuery.js-Datei.

Antwort

0

jQuery haben nicht die Fähigkeit, HTML aus einer anderen Datei aufzunehmen.

1

prüfen diese

$.get('data/icon.html', function(data) { 
    icons.forEach(function(iconData, index, array) { 
     console.log(index); 

     // Get 'data' as jQuery object 
     var $data = $(data); 

     // Find image tag and set source 
     $data.find('img').attr('src', iconData[2]); 

     //Finally put it on page 
     $data.insertAfter("#" + iconData[3]); 
    }); 
}); 
+0

Es gibt einen erkennbaren Unterschied im Ergebnis. –

+0

Ihr Code funktioniert erwartungsgemäß unter [test setup] (https://jsfiddle.net/28rgbm92/). Bitte stellen Sie sicher, dass Sie den erwarteten HTML-Code erhalten, um eine Anfrage an "data/icon.html" zu senden. –

+0

Wäre es möglich, dass Sie das Projekt herunterladen und sehen, ob der Problempunkt anders ist? –

Verwandte Themen