@@ -103,6 +103,10 @@ func (event *Event) StopPropagation() {
103
103
event .Call ("stopPropagation" )
104
104
}
105
105
106
+ func log (i ... interface {}) {
107
+ js .Global .Get ("console" ).Call ("log" , i ... )
108
+ }
109
+
106
110
//JQuery constructor
107
111
func NewJQuery (args ... interface {}) JQuery {
108
112
return JQuery {o : js .Global .Get (JQ ).New (args ... )}
@@ -199,10 +203,8 @@ func Unique(arr js.Object) js.Object {
199
203
}
200
204
201
205
//methods
202
- func (j JQuery ) Each (fn func (int , JQuery )) JQuery {
203
- j .o = j .o .Call ("each" , func (idx int , elem js.Object ) {
204
- fn (idx , NewJQuery (elem ))
205
- })
206
+ func (j JQuery ) Each (fn func (int , interface {})) JQuery {
207
+ j .o = j .o .Call ("each" , fn )
206
208
return j
207
209
}
208
210
@@ -215,7 +217,8 @@ func (j JQuery) Get(i ...interface{}) js.Object {
215
217
}
216
218
217
219
func (j JQuery ) Append (i ... interface {}) JQuery {
218
- return j .dom2args ("append" , i ... )
220
+ j .o = j .o .Call ("append" , i ... )
221
+ return j
219
222
}
220
223
221
224
func (j JQuery ) Empty () JQuery {
@@ -242,7 +245,6 @@ func (j JQuery) Delay(i ...interface{}) JQuery {
242
245
return j
243
246
}
244
247
245
- //to "range" over selection:
246
248
func (j JQuery ) ToArray () []interface {} {
247
249
return j .o .Call ("toArray" ).Interface ().([]interface {})
248
250
}
@@ -286,7 +288,6 @@ func (j JQuery) SetText(i interface{}) JQuery {
286
288
default :
287
289
print ("SetText Argument should be 'string' or 'func(int, string) string'" )
288
290
}
289
-
290
291
j .o = j .o .Call ("text" , i )
291
292
return j
292
293
}
@@ -368,38 +369,50 @@ func (j JQuery) Blur() JQuery {
368
369
}
369
370
370
371
func (j JQuery ) ReplaceAll (i interface {}) JQuery {
371
- return j .dom1arg ("replaceAll" , i )
372
+ j .o = j .o .Call ("replaceAll" , i )
373
+ return j
374
+
372
375
}
373
376
func (j JQuery ) ReplaceWith (i interface {}) JQuery {
374
- return j .dom1arg ("replaceWith" , i )
377
+ j .o = j .o .Call ("replaceWith" , i )
378
+ return j
375
379
}
376
380
377
381
func (j JQuery ) After (i ... interface {}) JQuery {
378
- return j .dom2args ("after" , i ... )
382
+ j .o = j .o .Call ("after" , i )
383
+ return j
384
+
379
385
}
380
386
381
387
func (j JQuery ) Before (i ... interface {}) JQuery {
382
- return j .dom2args ("before" , i ... )
388
+ j .o = j .o .Call ("before" , i ... )
389
+ return j
383
390
}
384
391
385
392
func (j JQuery ) Prepend (i ... interface {}) JQuery {
386
- return j .dom2args ("prepend" , i ... )
393
+ j .o = j .o .Call ("prepend" , i ... )
394
+ return j
387
395
}
388
396
389
397
func (j JQuery ) PrependTo (i interface {}) JQuery {
390
- return j .dom1arg ("prependTo" , i )
398
+ j .o = j .o .Call ("prependTo" , i )
399
+ return j
391
400
}
392
401
393
402
func (j JQuery ) AppendTo (i interface {}) JQuery {
394
- return j .dom1arg ("appendTo" , i )
403
+ j .o = j .o .Call ("appendTo" , i )
404
+ return j
395
405
}
396
406
397
407
func (j JQuery ) InsertAfter (i interface {}) JQuery {
398
- return j .dom1arg ("insertAfter" , i )
408
+ j .o = j .o .Call ("insertAfter" , i )
409
+ return j
410
+
399
411
}
400
412
401
413
func (j JQuery ) InsertBefore (i interface {}) JQuery {
402
- return j .dom1arg ("insertBefore" , i )
414
+ j .o = j .o .Call ("insertBefore" , i )
415
+ return j
403
416
}
404
417
405
418
func (j JQuery ) Show () JQuery {
@@ -439,7 +452,8 @@ func (j JQuery) SetHtml(i interface{}) JQuery {
439
452
}
440
453
441
454
func (j JQuery ) Closest (i ... interface {}) JQuery {
442
- return j .dom2args ("closest" , i ... )
455
+ j .o = j .o .Call ("closest" , i ... )
456
+ return j
443
457
}
444
458
445
459
func (j JQuery ) End () JQuery {
@@ -448,7 +462,8 @@ func (j JQuery) End() JQuery {
448
462
}
449
463
450
464
func (j JQuery ) Add (i ... interface {}) JQuery {
451
- return j .dom2args ("add" , i ... )
465
+ j .o = j .o .Call ("add" , i ... )
466
+ return j
452
467
}
453
468
454
469
func (j JQuery ) Clone (b ... interface {}) JQuery {
@@ -623,11 +638,13 @@ func (j JQuery) Wrap(obj interface{}) JQuery {
623
638
}
624
639
625
640
func (j JQuery ) WrapAll (i interface {}) JQuery {
626
- return j .dom1arg ("wrapAll" , i )
641
+ j .o = j .o .Call ("wrapAll" , i )
642
+ return j
627
643
}
628
644
629
645
func (j JQuery ) WrapInner (i interface {}) JQuery {
630
- return j .dom1arg ("wrapInner" , i )
646
+ j .o = j .o .Call ("wrapInner" , i )
647
+ return j
631
648
}
632
649
633
650
func (j JQuery ) Next (i ... interface {}) JQuery {
@@ -690,7 +707,8 @@ func (j JQuery) Resize(i ...interface{}) JQuery {
690
707
}
691
708
692
709
func (j JQuery ) Scroll (i ... interface {}) JQuery {
693
- return j .handleEvent ("scroll" , i ... )
710
+ j .o = j .o .Call ("scroll" , i ... )
711
+ return j
694
712
}
695
713
696
714
func (j JQuery ) FadeOut (i ... interface {}) JQuery {
@@ -699,29 +717,12 @@ func (j JQuery) FadeOut(i ...interface{}) JQuery {
699
717
}
700
718
701
719
func (j JQuery ) Select (i ... interface {}) JQuery {
702
- return j .handleEvent ("select" , i ... )
720
+ j .o = j .o .Call ("select" , i ... )
721
+ return j
703
722
}
704
723
705
724
func (j JQuery ) Submit (i ... interface {}) JQuery {
706
- return j .handleEvent ("submit" , i ... )
707
- }
708
-
709
- func (j JQuery ) handleEvent (evt string , i ... interface {}) JQuery {
710
-
711
- switch len (i ) {
712
- case 0 :
713
- j .o = j .o .Call (evt )
714
- case 1 :
715
- j .o = j .o .Call (evt , func (e js.Object ) {
716
- i [0 ].(func (Event ))(Event {Object : e })
717
- })
718
- case 2 :
719
- j .o = j .o .Call (evt , i [0 ].(map [string ]interface {}), func (e js.Object ) {
720
- i [1 ].(func (Event ))(Event {Object : e })
721
- })
722
- default :
723
- print (evt + " event expects 0 to 2 arguments" )
724
- }
725
+ j .o = j .o .Call ("submit" , i ... )
725
726
return j
726
727
}
727
728
@@ -730,118 +731,18 @@ func (j JQuery) Trigger(i ...interface{}) JQuery {
730
731
return j
731
732
}
732
733
733
- func (j JQuery ) On (p ... interface {}) JQuery {
734
- return j .events ("on" , p ... )
735
- }
736
-
737
- func (j JQuery ) One (p ... interface {}) JQuery {
738
- return j .events ("one" , p ... )
739
- }
740
-
741
- func (j JQuery ) Off (p ... interface {}) JQuery {
742
- return j .events ("off" , p ... )
743
- }
744
-
745
- func (j JQuery ) events (evt string , p ... interface {}) JQuery {
746
-
747
- count := len (p )
748
-
749
- var isEventFunc bool
750
- switch p [len (p )- 1 ].(type ) {
751
- case func (Event ):
752
- isEventFunc = true
753
- default :
754
- isEventFunc = false
755
- }
756
-
757
- switch count {
758
- case 0 :
759
- j .o = j .o .Call (evt )
760
- return j
761
- case 1 :
762
- j .o = j .o .Call (evt , p [0 ])
763
- return j
764
- case 2 :
765
- if isEventFunc {
766
- j .o = j .o .Call (evt , p [0 ], func (e js.Object ) {
767
- p [1 ].(func (Event ))(Event {Object : e })
768
- })
769
- return j
770
- } else {
771
- j .o = j .o .Call (evt , p [0 ], p [1 ])
772
- return j
773
- }
774
- case 3 :
775
- if isEventFunc {
776
-
777
- j .o = j .o .Call (evt , p [0 ], p [1 ], func (e js.Object ) {
778
- p [2 ].(func (Event ))(Event {Object : e })
779
- })
780
- return j
781
-
782
- } else {
783
- j .o = j .o .Call (evt , p [0 ], p [1 ], p [2 ])
784
- return j
785
- }
786
- case 4 :
787
- if isEventFunc {
788
-
789
- j .o = j .o .Call (evt , p [0 ], p [1 ], p [2 ], func (e js.Object ) {
790
- p [3 ].(func (Event ))(Event {Object : e })
791
- })
792
- return j
793
-
794
- } else {
795
- j .o = j .o .Call (evt , p [0 ], p [1 ], p [2 ], p [3 ])
796
- return j
797
- }
798
- default :
799
- print (evt + " event should no have more than 4 arguments" )
800
- j .o = j .o .Call (evt , p ... )
801
- return j
802
- }
734
+ func (j JQuery ) On (i ... interface {}) JQuery {
735
+ j .o = j .o .Call ("on" , i ... )
736
+ return j
803
737
}
804
738
805
- func (j JQuery ) dom2args (method string , i ... interface {}) JQuery {
806
-
807
- switch len (i ) {
808
- case 2 :
809
- selector , selOk := i [0 ].(JQuery )
810
- context , ctxOk := i [1 ].(JQuery )
811
- if ! selOk && ! ctxOk {
812
- j .o = j .o .Call (method , i [0 ], i [1 ])
813
- return j
814
- } else if selOk && ! ctxOk {
815
- j .o = j .o .Call (method , selector .o , i [1 ])
816
- return j
817
- } else if ! selOk && ctxOk {
818
- j .o = j .o .Call (method , i [0 ], context .o )
819
- return j
820
- }
821
- j .o = j .o .Call (method , selector .o , context .o )
822
- return j
823
- case 1 :
824
- selector , selOk := i [0 ].(JQuery )
825
- if ! selOk {
826
- j .o = j .o .Call (method , i [0 ])
827
- return j
828
- }
829
- j .o = j .o .Call (method , selector .o )
830
- return j
831
- default :
832
- print (" only 1 or 2 parameters allowed for method " , method )
833
- return j
834
- }
739
+ func (j JQuery ) One (i ... interface {}) JQuery {
740
+ j .o = j .o .Call ("one" , i ... )
741
+ return j
835
742
}
836
743
837
- func (j JQuery ) dom1arg (method string , i interface {}) JQuery {
838
-
839
- selector , selOk := i .(JQuery )
840
- if ! selOk {
841
- j .o = j .o .Call (method , i )
842
- return j
843
- }
844
- j .o = j .o .Call (method , selector .o )
744
+ func (j JQuery ) Off (i ... interface {}) JQuery {
745
+ j .o = j .o .Call ("off" , i ... )
845
746
return j
846
747
}
847
748
0 commit comments