2010-09-08 12 views
5

Mam funkcję, która musi pojawić się wewnątrz jQuery $(document).ready(function() {} - Jestem au fait z javascript, ale tak naprawdę nie pracował z jQuery. Jak mogę jQrealizować tę funkcję?jquery v javascript

function populateContext() 
{ 
    contextTxtBox = document.getElementById('searchContext'); 
    pathArr = window.location.pathname.split('/'); 
    contextTxtBox.value = pathArr[1].toUpperCase(); 
}; 
+3

jQuery jest JavaScript, to po prostu oferuje kilka funkcji, aby najczęściej używane zadania łatwiejsze, ale też wolniej. To zadanie jest trywialne i najlepiej pozostawić je w spokoju z prostą Javascript, ponieważ będzie ono szybsze i będzie miało mniej zależności. – AlexanderMP

+1

+1 dla 'jQuerify' –

+0

@Alexander. To prawda ... ale w tym przypadku jest to banalne. –

Odpowiedz

3

To rzeczywiście prawie identyczne, ponieważ jedyne, co mogę znaleźć wartości jQuerifying (ładne słowo) jest elementem DOM.

function populateContext() 
{ 
    var contextTxtBox = $('#searchContext'); 
    var pathArr = window.location.pathname.split('/'); 
    contentTxtBox.val(pathArr[1].toUppercase()); 
} 

$(document).ready(function() 
{ 
    populateContext(); 
}); 
+0

contentTxtBox.value też działa? –

+0

To był literówka, miałem na myśli 'val()'. – BoltClock

+1

Cane należy uprościć do $ (document) .ready (populateContext), jeśli wszystko, co robisz, –

1

ten sposób, jeśli cię rozumiem poprawnie

function populateContext() 
{ 
    contextTxtBox = $('#searchContext'); 
    pathArr = window.location.pathname.split('/'); 
    contextTxtBox.val(pathArr[1].toUpperCase()); 
}; 
1
$(document).ready(function() { 
//whatever code you want 

}); 

function populateContext() { 
    pathArr = window.location.pathname.split('/'); 
    $("#searchContext").Val(pathArr[1].toUpperCase()); 
}; 

tylko sidenote: jQuery jest javascript, dzięki czemu można łączyć ze sobą :)

0
function populateContext(){ 
    contentTxtBox = $('#searchContext'); 
    pathArr = window.location.pathname.split('/'); 
    $(contextTxtBox).val(pathArr[1].toUpperCase()); 
} 
0

nie jestem pewnie co masz na myśli, ale możesz po prostu zrobić:

$(document).ready(function() { 
    populateContext() 
}); 

Jeśli chcesz poprawić swoją funkcję do korzystania z jQuery, można zrobić w ten sposób:

function populateContext() { 
    var $contextTxtBox = $('#searchContext'); 
    pathArr = window.location.pathname.split('/'); 
    $contextTxtBox.val(pathArr[1].toUpperCase()); 
}; 

Jeśli zapewniają Państwo więcej informacji o tym, co dokładnie ma swoje wątpliwości, czy mogę być w stanie wyjaśnić lepiej .

+0

Moje aktualne instrukcje to dodawanie: na DOM załadowany detektor funkcji "DomLoaded" ----------- funkcja populateContext() { \t contextTxtBox = document.getElementById ("searchContext"); \t pathArr = window.location.pathname.split ('/'); \t contextTxtBox.value = pathArr [1] .toUpperCase(); } // zapełnij kontekst wyszukiwania DomLoaded.load (populateContext); W jaki sposób Jquery obsługuje słuchaczy? – ashash

+0

To zależy od rodzaju zdarzenia, które Cię interesuje, w twoim przypadku jest zdarzeniem DOM Ready, możesz po prostu: $ (document) .ready (callback); i jQuery wywoła funkcję "callback", gdy DOM jest gotowy. Ale myślę, że powinieneś przeczytać: http: //api.jquery.com/gotowe/to sprawi, że wszystko będzie bardziej zrozumiałe :) – Uoli

1

To powinno załatwić sprawę

function populateContext() { 
    var aPath = $(location).attr('href').split("/"); 
    $('#searchContext').val(aPath[1].toUpperCase()) 
} 
+0

Wydaje mi się, że jestem jedynym, który jest jQuerifying lokalizacji :) – michael

+0

Nice - cheers chaps bardzo doceniane jak zawsze. – ashash

+0

+1 za jQUracjonowanie lokalizacji –

4

jQuerify? Zrób z niego plugin!

(function($){ 

    $.fn.populateContext = function(){ 
     var pathArr = window.location.pathname.split('/'); 
     return this.val(pathArr[1].toUpperCase()); 
    }; 


}(jQuery)); 

i używać go jak ten

$(document).ready(function(){ 
    // Same as window.onload 
    $("#searchContext").populateContext(); 
}); 
+0

Shucks, Właśnie wykorzystałem swój ostatni głos w innym miejscu, więc nie mogę tego zrobić. Ale rekwizyty do przekształcenia go w wtyczkę! Prawdziwy duch jQuery :) – BoltClock

+0

teraz to naprawdę jQueryfied haahahaha – mcgrailm

+0

Powróciłem prawie 2 lata później, aby w końcu zagłosować. – BoltClock