[jQuery] Hergebruik naamloze functie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 10:11
Ik ben bezig met een jQuery script die van een select een dropdown maakt ik gebruik hiervoor een open source script, de volledige documentatie en source staat hier. Het gedeelte wat er naar mijn inziens toe doet is volgens mij onderstaand.

Het probleem
De dropdown checklist moet worden samengebruikt met een eigen script "voeg een rij toe".
Dit script werkt volledig naar behoren, hier dus geen omkijken na maar de script voor de select
wordt enkel uitgevoerd bij een pagina load en daarna doet het niks meer.

Nou is mijn jQuery kennis helaas niet zo goed dat ik direct waar ik na moet kijken, ik zie inderdaad enkele regels als
code:
1
2
3
4
_create: function(){ 
},
_init: function(){
}


maar ik heb geen idee hoe ik de onclick kan oproepen de functie nog een keer uit te voeren zodat nieuwe select's ook aangepast worden naar een dropdown select.

als iemand mij dit zou kunnen vertalen dat ik ze kan oproepen of hoe ik ze moet hernoemen terwijl het toch blijf werken zou dat fijn zijn. (1 regel voorbeeld code is voldoende)

(de reden dat ik twijfel over het hernoemen is dat ik alle open, close en keypress functions wel gekoppeld zie met een }, _(actie) function(){,)

ik hoop hiermee voldoende informatie te hebben gegeven, met google kom ik er namelijk helaas niet uit. O-)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(function($, undefined){

var multiselectID = 0;

$.widget("ech.multiselect", {

    // default options
    options: {
        // enkele opties, lijkt me niet nodig ze op te noemen
    },

    _create: function(){

    },

[ Voor 9% gewijzigd door IMarks op 19-10-2012 10:01 ]


Acties:
  • 0 Henk 'm!

  • IMarks
  • Registratie: Juli 2011
  • Laatst online: 10:11
het is al opgelost de oplossing was opties in de header in een function zetten en die oproepen na het aanmaken van de nieuwe regel.
code ziet er nu als volgt uit, de code die bovenstaand genoemd is ongewijzigd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script type="text/javascript">
        multiselect();
        function multiselect ()
        {
            $(function(){
                $("select").multiselect({
                    selectedList: 2
                });
                $("select.single").multiselect({
                   // enkele opties
                });
            });
        }
        </script>


en de onclick ziet er zo uit
code:
1
onClick="addInput('select');multiselect();"

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Aangezien je toch jQuery gebruikt zou ik dat geen onClick gebruiken, maar het ook met jQuery toevoegen:

JavaScript:
1
2
3
$('elm').click(function(){
// do stuff
});

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • meneer william
  • Registratie: Maart 2011
  • Laatst online: 04-11-2024
Ja humm een beetje rare beredenering. Ik heb zomaar het idee dat je niet helemaal het idee van Jquery hebt begrepen. :? :? }:O Het is namelijk zo dat het meeste al voor je voorgekauwd is.

Zo is het handiger om een element te selecteren en daar een event aan te koppelen. @OkkE doet daar voor al een goeie suggestie. Toch moet ik daar dit aan toevoegen:

JavaScript: script.js
1
2
3
4
5
$('.knopje').live('click', function(){
   var data = $(this).attr("value");
   
   //doe iets
});


Let hierbij op dat de live functie wordt gebruikt met ajax. Het zorgt ervoor dat de code beschikbaar blijft na het laden van een ajax request. Ook kun je alle knopjes hetzelfde noemen en met this selector het value of eigen bedachte attributen gebruiken om daarop een actie uit te voeren. Met this pak je dus het elements wat getriggert is. In dit voorbeeld gebruik ik expres .attr omdat deze het value van alle attributen kan pakken. Je hebt namelijk ook de .val functie waarmee je het value van het value attribuut pakt. |:(

Je moet Jquery vooral zien als dom selector en manipulator. Ook kun je hiermee het gebruik van javascript en Jquery uitdunnen. Als je het goed opzet kun je met html en PHP alles maken zonder nog naar je js te hoeft kijken. _/-\o_ 8)

[ Voor 0% gewijzigd door meneer william op 20-10-2012 00:10 . Reden: had php gebruikt inplaats van js in code tag ]

sirwilliam


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 07:59
@meneer william: Jammer dat je een deprecated methode gebruikt, sinds kort is het .on.

Als ik de documentatie van de module zo lees wordt er gebruik gemaakt van events, waarom hier niet een callback aan vast knopen?

[ Voor 6% gewijzigd door Manuel op 20-10-2012 00:54 . Reden: typo ]