Jag är förvirrad över ett litet problem relaterat till jquery i mitt projekt. Projektet är en MVC4-sajt i visual studio 11.
Problemet är att jQuery inte ingår i paketet och det verkade fungera innan jag uppdaterade till 1.7.2, men kan inte vara säker.
Jag ser jQuery-filkommentaren ovanpå den länkade filen, men jag kan inte hitta den. Alla andra filer verkar vara inkluderade (mina egna skript och jquery ui-filer).
Jag provade paketfilter och skapade mitt eget paket, men ingenting fungerar.
Jag skulle verkligen uppskatta all hjälp eftersom när sidan laddar alla java-skript bara kraschar eftersom funktionen inte hittas. Detta fungerar om jag inkluderar java-skriptfilerna normalt.
Skyddat void Application_Start() ( BundleTable.Bundles.EnableDefaultBundles(); )
Funktionstest( )
Ändrade sedan till detta och koden var borta den här gången.
(funktionstest())( ))
Det märkligaste är att andra jQuery-filer som UI:er inte tas bort och de är desamma.
Edit: det ser ut som att detta är tänkt
Uppdatering 2:
Testade lite mer och fick reda på vilken fil som går sönder, om jag inkluderar någon av dessa filer i mitt eget paket går den sönder
- jquery.validate.js
- jquery.validate.unobtrusive.js
- jquery.unobtrusive-ajax.min.js
Jag har dem tidigare och de fungerar utan fel
- jQuery-1.7.2.min.js
- JQuery-UI-1.8.19.min.js
- bootstrap.min.js
Det är fortfarande konstigt, om jag inkluderar den här filen som vanligt i ett script med , så fungerar de som de ska utan fel.
Fast om jag samlar in arbetsfiler och sedan lägger till en som inte fungerar efteråt, som vanligt, går de fortfarande sönder
Var bundle = new Bundle("~/js", new JsMinify()); bundle.AddFile("~/Scripts/jquery-1.7.2.min.js"); bundle.AddFile("~/Scripts/jquery-ui-1.8.19.min.js"); bundle.AddFile("~/Scripts/bootstrap.min.js"); BundleTable.Bundles.Add(bundle);
Edit: Det ser ut som att något har ändrats i de associerade jquery-filerna som gör att valideringspluginerna
Jobba runt
Jag försökte lägga till gamla filer innan jag uppdaterade och det fungerar! Vi fick reda på att det var det nya jQuery UI 1.8.19 från NuGet som kraschade.
Jag laddade ner jquery ui direkt från min sida och använde det istället och det fungerade!
Så det verkar som att något i versionen av jquery ui nuget har ändrats, att paketet bygger och ändrar/tar bort det, så det går sönder.
vilken del är skyldig? jQuery UI NuGet-paket eller mvc4-paket? Och finns det en lösning på bindningsproblemet?
Fråga: Felaktig jQuery-anslutning i Wordpress
När du ansluter ett plugin i ett WordPress-inlägg ser plugin inte jquery och konsolen svarar naturligtvis:
JQuery(...).rotator är inte en funktion
I samma post, precis innan du ansluter plugin-programmet, finns det:
Javascript | ||
|
Som returnerar ss. Jag kopplade in den i functions.php, felaktigt i header.php, installerade en plugin för att ansluta jquery på sidor - fan, det fungerar inte.
Tack så mycket på förhand till alla som uppmärksammat.
Svar:
Moderatorns kommentar | ||
|
Fråga: Ansluter JQuery UI
Jag försöker ansluta JQuery UI enligt följande. Mellan head-taggarna lägger jag till bibliotek och en css-fil:
HTML5-kod | ||
|
HTML5-kod | ||
|
Och mellan body-taggarna försöker jag visa samma reglage
Som ett resultat matas ingenting ut. Jag kollade med firebug, inga fel hittades. Vad ska jag göra för att få det att fungera?
Svar: pro1004ok,
Javascript-kod | ||
|
Fråga: Ansluter jQuery
Vilken dum sak att jQuery inte fungerar.
HTML5 | ||||||
Fördelen med denna metod är att många webbplatser ansluter jQuery via Googles API, vilket innebär att det här biblioteket med stor sannolikhet redan finns i användarens webbläsarcache, och det kommer inte att laddas en andra gång alls. Ansluter jQuery till WordPressjQuery ingår automatiskt i WordPress, så det finns inget behov av att manuellt inkludera bibliotek från andra versioner. Detta händer i mallen med hjälp av php-kod:
Detta kommer att resultera i en jQuery-anslutningssträng inuti HEAD-taggen. I skrivande stund kommer jQuery v1.12.4 med WordPress Men som du kan se är versionen av biblioteket mycket annorlunda än den som ingår i exemplen ovan. Det är möjligt att ansluta den senaste versionen av biblioteket, men det finns risk för en konflikt. För att undvika en konflikt, men ändå använda den version av biblioteket som behövs, måste du använda rätt sätt att inkludera jQuery i functions.php-filen: Jag har inte skrivit något på bloggen på länge, och jag tog mig äntligen lite tid att prata om widgeten Autokomplettering, som ingick i jQuery UI, ett tillägg för jQuery JavaScript-biblioteket. Autoslutför-widgeten hjälper till att organisera en lista med matchande värden när användaren fyller i ett inmatningsfält. Först, låt oss besöka sidan på jQuery UI-webbplatsen för att få de filer vi behöver. Vi klickar på länken Avmarkera alla komponenter för att inte ladda ner onödiga saker och väljer sedan bara det vi behöver - kryssa i kryssrutan Autoslutför och se att kryssrutorna Core, Widget och Position är markerade tillsammans med den. Widgeten Autoslutförande beror på att dessa filer fungerar. Dessutom finns det en rullgardinslista till höger där du kan välja ditt favoritdesigntema. Om allt är klart, klicka på knappen Ladda ner och hämta arkivet. Widgetens möjligheter kan bedömas på utvecklarens webbplats. Jag ska bara försöka förklara på ryska och på ett så enkelt språk som möjligt hur man får det hela att fungera. Så först i HEAD-sektionen måste du ansluta flera filer som finns i arkivet.
Först inkluderade vi widgetstilfilen, sedan jQuery-biblioteksfilen. Den tredje inkluderade filen behövs för att implementera Autocomplete. Widgeten Autoslutförande kräver inte komplex HTML-uppmärkning. Bara ett textinmatningsfält räcker, d.v.s. ett vanligt inmatningselement som har ett textvärde i sitt typattribut. Ytterligare markeringar kan läggas till för att utforma det enligt ditt valda tema. Taggar: Låt oss först titta på det enklaste fallet med att använda en widget - när lokal data används för att generera en lista med tips. $(function())( var availableTags = ["ActionScript","AppleScript","Asp","BASIC", "C","C++","Clojure","COBOL","ColdFusion","Erlang" , "Fortran", "Groovy","Haskell","Java","JavaScript","Lisp","Perl","PHP", "Python","Ruby","Scala","Scheme"]; ("#taggar").autocomplete((källa: tillgängligaTaggar )); En array med tips har förberetts i variabeln availableTags. Sedan valde vi inmatningselementet med dess identifierare och använde autocomplete-metoden, som omedelbart skickades ett objekt med inställningarna. För närvarande är detta ett objekt med en enda egenskap, source , som anger källan till data. I vårt fall är arrayen tillgängligaTags specificerad. Faktum är att vi kan anpassa widgeten lite med hjälp av andra egenskaper för inställningsobjektet. Här är en lista över dessa egenskaper: source – alternativet har inget standardvärde och måste definieras. Alternativvärdet kan vara en sträng, array eller funktion. I vilket fall som helst måste datakällan anges i detta alternativ. $(function())( var availableTags = ["ActionScript","AppleScript","Asp","BASIC", "C","C++","Clojure","COBOL","ColdFusion","Erlang" , "Fortran", "Groovy","Haskell","Java","JavaScript","Lisp","Perl","PHP", "Python","Ruby","Scala","Scheme"]; ("#tags").autocomplete((källa: tillgängligaTaggar, välj: function(event, ui) ( alert("Event: " + event.type + ",\nvalue: " + ui.item.value); ) ) ); )); Här lade vi till en select-egenskap, där vi definierade en funktion som kommer att anropas när användaren väljer ett värde från listan med verktygstips. funktionen tar två argument: det första är ett händelseobjekt, det andra är ett speciellt ui-objekt. Genom att organisera tillgången till egenskaperna för dessa objekt kan du få användbar information (vi visar den i varningsfönstret). Detta är inte den enda händelsen som widgeten kan svara på - här är en komplett lista över dem, som visar namnet på egenskapen i objektet med inställningar, namnet på händelsen i event.type och beskrivningen av händelsen: skapa händelse skapa automatiskt inträffar vid initialiseringsögonblicket. Widgeten har också några metoder med vilka du kan utöka dess funktionalitet ytterligare. Lägg till exempel till ett par knappar i HTML-uppmärkningen: Sök "som" Stäng Taggar: Och här är JS-koden: $(function())( var availableTags = ["ActionScript","AppleScript","Asp","BASIC", "C","C++","Clojure","COBOL","ColdFusion","Erlang" , "Fortran", "Groovy","Haskell","Java","JavaScript","Lisp","Perl","PHP", "Python","Ruby","Scala","Scheme"]; ("#tags").autocomplete(( source: availableTags, minLength: 0 )); $("#search").click(function())( $("#tags").autocomplete("sök", " som "); )); $("#close").click(function())( $("#tags").autocomplete("stäng"); )); )); Nu, genom att klicka på knappen Sök efter "som" kan vi simulera användarens handlingar som om han hade skrivit in tecknen "som" i inmatningselementet. Genom att klicka på knappen Stäng stänger vi listan med tips, om den har öppnats tidigare. Nedan finns beskrivningar av alla tillgängliga metoder: destroy – .autocomplete('destroy') tar helt bort all funktionalitet i autokompletteringswidgeten. Returnerar element till deras förinitieringstillstånd. I allmänhet vet vi nu hur man konfigurerar och hanterar widgeten, men hittills har vi uteslutande använt lokal data för att generera en lista med tips. Det är lämpligt för att utforska möjligheter, men osannolikt för riktigt arbete. I verkligt arbete kommer du förmodligen att behöva generera tips från data lagrad på din egen server, och kanske inte alls på egen hand Källalternativet, som, låt mig påminna dig, är obligatoriskt och definierar datakällan, kan också acceptera en rad som innehåller webbadressen till vilken begäran ska skickas. Och i källkod kan du definiera din egen funktion som gör det du behöver. Detta är kanske den mest flexibla metoden som vi kommer att analysera. Låt oss försöka få lite data från geonames.org-servern i form av en lista med tips Jag kommer att tillhandahålla en fullt fungerande kod och försöka förklara hur och vad som fungerar. exempel-17-8-4 .ui-autocomplete-loading ( bakgrund: #FFF url("/instruction/2011/css/ui-lightness/images/ui-anim_basic_16x16.gif") höger mitt no-repeat; ) #city ( width: 25em; ) #log ( höjd: 200px; bredd: 600px; overflow: auto; ) $(function() ( $("#city").autocomplete((källa: function(request,response) ( $. ajax(( url: "http://ws.geonames.org/searchJSON", dataType: "jsonp", data: ( featureClass: "P", stil: "full", maxRows: 12, name_startsWith: request.term ) , framgång: function(data) ( response($.map(data.geonames, function(item) ( return ( label: item.name + ", " + item.countryName, value: item.name + " (" + item) .countryName + ")" + " [" + item.lat + ", " + item.lng + "]" ) ) )), minLength: 3, välj: function(event,ui) ( $(" ").text(ui.item ? ui.item.value: "Inget valt!").prependTo("#log"); $("#log").attr("scrollTop", 0); ) ) ) ; )); Stad:Stöds av geonames.org Först tittar vi på HTML-uppmärkningen. I det första div-elementet är vi bara intresserade av input-elementet med id city . Här kommer vi att skriva in initialbokstäverna (på latin) för den ort som vi vill få information om. Vi använder div-elementet med identifierarloggen för att mata in den mottagna informationen i den. Om vi tittar på JavaScript-koden kommer vi att se att inställningsobjektet innehåller tre egenskaper - den nödvändiga källegenskapen, samt egenskaperna minLength och select. Inuti funktionen som definieras i källegenskapen har vi nästan obegränsad handlingsfrihet. Och därför, utan vidare, skriver vi där en ajax-förfrågan till webbadressen http://ws.geonames.org/searchJSON, i alternativet dataType anger vi att vi förväntar oss att få data i JSON-format i svaret. I dataalternativet definierar vi ett objekt med begäran parametrar som kommer att skickas till den angivna url ( varför parametrarna är exakt så här - du måste titta på API-dokumentationen på geonames.org-servern). I den sista parametern skickar vi request.term – vad användaren skrev in. I nästa alternativ av ajax-förfrågan - framgångsalternativet, kallar vi svarsbearbetningsfunktionen svar . I argumentet som vi skickar till den här funktionen kan vi behandla data som tas emot i serversvaret på vilket sätt vi vill. Vi använder metoden $.map för att tillämpa någon funktion på varje element i objektet som skickas i det första argumentet. Inuti funktionen kan vi komma åt egenskaperna för objektet - item.countryName, item.lng, item.lat ( varför egenskaperna är som de är - se API-dokumentationen som tillhandahålls av webbtjänsten). Funktionen vi skrev, för varje element, returnerar ett objekt som innehåller två egenskaper som vi definierat själva med den mottagna datan. Från den resulterande uppsättningen av sådana objekt konstrueras en lista med tips. I allmänhet, något sånt här... Sammanfattningsvis en stor mänsklig begäran - i kommentarerna, snälla, kan du berömma eller skälla i princip. Om du vill ställa en teknisk fråga, ställ den på |