본질적으로 모바일 브라우저의 이벤트 역할을하는 일련의 jQuery 용 플러그인을 작성했습니다. 여기에서 볼 수 있습니다.>http://ben-major.co.uk/2011/11/jquery-mobile-events/.live()와 함께 사용하기 위해 jQuery에서 사용자 정의 이벤트 트리거
현재 이들은 $(ele).tap(handler)
등으로 불려지지만, 사용자 지정 이벤트를 발생시키는 기능을 추가하고 싶습니다. 따라서 $(ele).on('tap', handler);
과 같은 기능을 사용하여 기능을 활용할 수 있습니다.
것은 지금은 다음 코드를 사용하고 있지만이 작동하지 않습니다
$(function() {
$('*').tapstart(function() { $(this).trigger('tapstart'); })
.tapend(function() { $(this).trigger('tapend'); })
.tap(function() { $(this).trigger('tap'); })
.doubletap(function() { $(this).trigger('doubletap'); })
.taphold(function() { $(this).trigger('taphold'); })
.swipedown(function() { $(this).trigger('swipedown'); })
.swipeup(function() { $(this).trigger('swipeup'); })
.swipeleft(function() { $(this).trigger('swipeleft'); })
.swiperight(function() { $(this).trigger('swiperight'); });
});
여기 내 문제를 설명하는
jsFiddle입니다. 분명히 두 번째
div
을 클릭하면 첫 번째 동작을 모방해야하지만 위에 제공된 바인딩이 파싱 된 후 DOM에 추가되었으므로 그렇지 않습니다.
내 질문에 : 내가 원하는 것을 달성하는 가장 좋은 방법은 무엇입니까? 현재 및 미래에 DOM에 존재하는 모든 요소를 선택하는 방법이 있습니까 (가능한 경우 livequery 또는 외부 플러그인과 같은 것을 사용하지 않을 것입니다).
나는 당신의 의견의 일부를 기반으로 이벤트 라이브러리를 다시 작성 끝났다. 맞습니다 - jQuery '*'선택기를 사용하면 모바일에 대한 나쁜 판단이됩니다. – BenM