예를 들어, 내 문서에 패널 두 페이지가 열려 슬쩍 필요가 패널 여러 페이지를 가지고, 패널은 같은 이름을 가지고, 그것은 다음과 같습니다같은 이름을 가지고
<html>
...
<body>
<div data-role="page" id="page1">
<div data-role="panel" id="left-panel">...</div>
<div data-role="panel" id="right-panel">...</div>
...
</div>
<div data-role="page" id="page2">
<div data-role="panel" id="left-panel">...</div>
<div data-role="panel" id="right-panel">...</div>
...
</div>
</body>
</html>
첫 페이지가로드되는 동안 작동하도록 스 와이프를 가져올 수 있지만 한 번 새로운 페이지를로드하면 스 와이프가 중단되어이 오류가 발생합니다. Uncaught Error: cannot call methods on panel prior to initialization; attempted to call method 'open'
. 난 HERE 설명 된 솔루션을 시도했지만 그것은 나를 위해 작동하지 않았다. 나는 열려있는 패널을 슬쩍이 코드를 사용하고 있습니다 : 나는 각 페이지에 슬쩍 리스너를 결합 되었기 때문에 각 페이지는 강타 기능하지만 그런 운이 것을 해결할 것이라고 생각 $(document).on("pageinit", function(){... it's at the end of this function});
안에
$("#page1").on("swipeleft swiperight", function(e) {
if ($.mobile.activePage.jqmData("panel") !== "open") {
if (e.type === "swipeleft") {
$("#right-panel").panel("open");
} else if (e.type === "swiperight") {
$("#left-panel").panel("open");
}
}
});
$("#page2").on("swipeleft swiperight", function(e) {
if ($.mobile.activePage.jqmData("panel") !== "open") {
if (e.type === "swipeleft") {
$("#right-panel").panel("open");
} else if (e.type === "swiperight") {
$("#left-panel").panel("open");
}
}
});
.
내가 시도하고있는 것을 할 수있는 방법이 있습니까? 나는 각 페이지에서 클래스 (.page
)를 사용하고 스 와이프 리스너 코드의 한 인스턴스를 사용하지만 아무 것도 작동하지 않는 것처럼 페이지가 변경 될 때마다 스 와이프 리스너 코드를로드하는 것과 같은 여러 솔루션을 시도했다.
'pageinit', '[data-role = page', function()'이 작동하지 않으면'pageinit' 바인딩을 제거하십시오. – Omar
님이 귀하의 제안을 모두 시도했지만 어느 것도 작동하지 않았습니다. – Joe
잠시만 기다려주세요. html 한 페이지입니까? 그렇다면 동일한 ID를 두 번 사용하십시오. – alkis