2010-09-08 15 views
5

Ho una funzione che ho bisogno di apparire all'interno di una jQuery $(document).ready(function() {} - Sono au fait con javascript ma non ho davvero funzionato con jQuery. Come posso jQuerificare questa funzione?jquery v javascript

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

jQuery è JavaScript, offre solo alcune funzioni per semplificare le attività di uso frequente più facile, ma anche più lento. Questa attività è banale, ed è meglio lasciarla sola con Javascript semplice, poiché sarà più veloce e avrà meno dipendenze. – AlexanderMP

+1

+1 per 'jQuerify' –

+0

@Alexander. Vero ... ma è banale in questo caso. –

risposta

3

In realtà è quasi identico in quanto l'unica cosa che trovo la pena jQuerifying (bella parola) è l'elemento DOM.

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

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

contentTxtBox.value funziona anche tu? –

+0

Quello era un errore di battitura, intendevo 'val()'. – BoltClock

+1

canna essere semplificata per $ (document) .ready (populateContext) se tutto questo si sta facendo –

1

questo modo, se ho capito correttamente si

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()); 
}; 

solo una nota a margine: jQuery è javascript in modo da poter combinare :)

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

io non sono certo che cosa intendi, ma puoi semplicemente fare:

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

Se si vuole migliorare la funzione di fare uso di jQuery, si potrebbe fare in questo modo:

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

Se si forniscono ulteriori informazioni, su ciò che è esattamente il vostro dubbio, io possa essere in grado di spiegare meglio .

+0

mie istruzioni vere e proprie sono da aggiungere: il Listener di funzioni caricate DOM 'DomLoaded' ----------- function populateContext() { \t contextTxtBox = document.getElementById ('searchContext'); \t pathArr = window.location.pathname.split ('/'); \t contextTxtBox.value = pathArr [1] .toUpperCase(); } // popolano il contesto di ricerca DomLoaded.load (populateContext); In che modo Jquery gestisce gli ascoltatori ?? – ashash

+0

Dipende dal tipo di evento che vi interessa, nel tuo caso, è l'evento DOM pronto, si può semplicemente: $ (document) .ready (callback); e jQuery chiamerà la funzione "callback" quando DOM è pronto. Ma penso che dovresti leggere: http: //api.jquery.com/ready/renderà le cose più chiare :) – Uoli

1

Questo dovrebbe fare il trucco

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

Mi sembra di essere l'unico che sta jQificando la posizione :) – michael

+0

Nice - cheers chaps molto apprezzato come sempre. – ashash

+0

+1 per jQurificando la posizione –

4

jQuerify? Fallo un plugin!

(function($){ 

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


}(jQuery)); 

e utilizzarlo come questo

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

Shucks, ho appena esaurito il mio ultimo voto, quindi non posso inventare questo. Ma puntelli per trasformarlo in un plug-in! Vero spirito di jQuery :) – BoltClock

+0

ora è veramente jQueryfied haahahaha – mcgrailm

+0

Tornato quasi 2 anni dopo per votare finalmente. – BoltClock