[JQUERY] jQuery의 .toggle () 메소드 대체 지원의 EVENTDATA인가?
JQUERYjQuery의 .toggle () 메소드 대체 지원의 EVENTDATA인가?
해결법
-
1.오히려 (당신이 링크의 전체 무리를 추적하기를 원한다면 두통이 될 수 있음) 추가 변수를 도입보다 난 그냥 당신이 jQuery의 데이터 스토리지 유틸리티를 사용하는 것이 좋을 것 ... 그것을 할 수있는 합리적인 방법처럼 보인다 . 그래서 예의 기반 :
오히려 (당신이 링크의 전체 무리를 추적하기를 원한다면 두통이 될 수 있음) 추가 변수를 도입보다 난 그냥 당신이 jQuery의 데이터 스토리지 유틸리티를 사용하는 것이 좋을 것 ... 그것을 할 수있는 합리적인 방법처럼 보인다 . 그래서 예의 기반 :
$('a').click(function() { var clicks = $(this).data('clicks'); if (clicks) { alert('odd number of clicks'); } else { alert('even number of clicks'); } $(this).data("clicks", !clicks); });
-
2.여기에 구현은 대안 (.toggle 할 수있는 플러그인)가 1.9+ jQuery를 제거되어, 특히 이후이다.
여기에 구현은 대안 (.toggle 할 수있는 플러그인)가 1.9+ jQuery를 제거되어, 특히 이후이다.
사용하는 방법:
이 방법에 대한 서명은 다음과 같습니다
.cycle( functions [, callback] [, eventType])
사용의 예는 다음과 같습니다
$('a').cycle([ function() { alert('odd number of clicks'); }, function() { alert('even number of clicks'); } ]);
여기 데모를 포함 시켰습니다.
플러그인 코드 :
(function ($) { if (!Array.prototype.reduce) { Array.prototype.reduce = function reduce(accumulator) { if (this === null || this === undefined) throw new TypeError("Object is null or undefined"); var i = 0, l = this.length >> 0, curr; if (typeof accumulator !== "function") // ES5 : "If IsCallable(callbackfn) is false, throw a TypeError exception." throw new TypeError("First argument is not callable"); if (arguments.length < 2) { if (l === 0) throw new TypeError("Array length is 0 and no second argument"); curr = this[0]; i = 1; // start accumulating at the second element } else curr = arguments[1]; while (i < l) { if (i in this) curr = accumulator.call(undefined, curr, this[i], i, this); ++i; } return curr; }; } $.fn.cycle = function () { var args = Array.prototype.slice.call(arguments).reduce(function (p, c, i, a) { if (i == 0) { p.functions = c; } else if (typeof c == "function") { p.callback = c; } else if (typeof c == "string") { p.events = c; } return p; }, {}); args.events = args.events || "click"; console.log(args); if (args.functions) { var currIndex = 0; function toggler(e) { e.preventDefault(); var evaluation = args.functions[(currIndex++) % args.functions.length].apply(this); if (args.callback) { callback(currIndex, evaluation); } return evaluation; } return this.on(args.events, toggler); } else { //throw "Improper arguments to method \"alternate\"; no array provided"; } }; })(jQuery);
from https://stackoverflow.com/questions/2459153/alternative-to-jquerys-toggle-method-that-supports-eventdata by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 데이터 속성 값을 기준으로 JQuery와 정렬 목록 (0) | 2020.10.26 |
---|---|
[JQUERY] 온 클릭 모바일 (터치)에서 작동하지 (0) | 2020.10.26 |
[JQUERY] 다이나믹있는 jqGrid 컬럼 바인딩 (0) | 2020.10.26 |
[JQUERY] 클론 선택 값을 복제하지 않습니다 (0) | 2020.10.26 |
[JQUERY] JQuery와 아약스로드 이미지 (0) | 2020.10.26 |