过渡后jQuery移动滑块没有刷新

时间:2017-10-04 11:53:53

标签: jquery-mobile

我将尝试描述我坚持了一个多星期的问题。很抱歉提前做了很长的解释,可能是英语不好(不是原生的)。

我有nodejs express + pug + jQuery Mobile 1.4.5项目。

我试图摆脱所有外部复杂性 - 只留下重现问题所需的东西: https://apricot-sidecar.glitch.me - 这是轻量级项目示例
https://glitch.com/edit/#!/apricot-sidecar - 项目代码在这里

重现问题:
在浏览器链接中打开https:// apricot-sidecar.glitch.me - >点击“Buro” - >点击右上角的“主页”按钮 - >再次点击“Buro”===>每次刷新滑块并将值设置为65

现在打开链接https:// apricot-sidecar.glitch.me/rooms/1/rollos(或用手在浏览器中刷新页面) - >点击“主页” - >点击“Buro” - >我们回到rooms/1/rollos - >但现在滑块显示为0。

我在/views/rooms/rollos.pug

中设置了值
$(document).off('pagebeforeshow', '#!{pageId}').on('pagebeforeshow','#!{pageId}', function(event, ui) {
  console.log('pagebeforeshow');
  //- QUESTION: HERE WE TRY TO SET SLIDER VALUE TO 65 EACH TIME WE LOAD THIS PAGE
  $('#Slider-4-!{pageId}').val(65).slider('refresh');
});

如果您在进行这些转换时打开浏览器控制台,则会看到每次加载/rooms/1/rollos时都会执行“console.log('pagebeforeshow')” - >这意味着该函数内的所有代码也应该执行。但这行“$('#Slider-4 - !{pageId}')。val(65).slider('refresh');”当我们从房间列表开始导航时,仅在第一种情况下刷新滑块。在第二种情况下,当我们仍然看到(通过控制台)应该执行这段代码时,它不起作用。

我相信我无法注意到的代码中存在一些愚蠢的错误。或者可能是jQuery Mobile中的一些错误,只有我现在才面对。 感谢任何帮助。谢谢你的时间。

P.S。如果我不在上面的代码中写.off('pagebeforeshow', '#!{pageId}'),那么每次进行转换时,'pagebeforeshow'回调的数量都会增加。

0 个答案:

没有答案