1

我使用 jquery mobile 并尝试删除一些类而不是编写一堆 css。当我在 jsFiddle 中对其进行测试时,它可以正常工作,但在浏览器中查看时却不行。我已将脚本放在 data-role="page" 中,因此它应该正确加载。我也试过 .trigger("updatelayout"); 但这似乎不起作用。任何帮助将不胜感激,因为这应该是一个 2 分钟的任务变成了 2 小时的头痛。

jQuery:

$("#panelforminput div").removeClass("ui-shadow-inset ui-corner-all ui-btn-shadow ui-body-c");
$("#newdoctorDiv ul").removeClass("ui-shadow");

jsFddle:

http://jsfiddle.net/adam123/9XXcj/6/

这是萤火虫的标记:

<span id="panelforminput" class="ui-li-aside">
  <div class="ui-input-text ui-shadow-inset ui-corner-all ui-btn-shadow ui-body-c ui-mini">
    <input id="adddocFirstName" class="ui-input-text ui-body-c" type="text" data-mini="true"
    placeholder="John" value="" name="adddocFirstName">
  </div>
</span>
4

3 回答 3

4

您需要将脚本放在代码中的document.ready中,以使元素可用于您的脚本,同时确保您成功包含 jQuery,阅读jQuery 的工作原理

在大多数情况下,只要完全构建了 DOM 层次结构,就可以运行脚本。传递给 .ready() 的处理程序保证在 DOM 准备好后执行,因此这通常是附加所有其他事件处理程序和运行其他 jQuery 代码 Reference的最佳位置。

于 2013-04-27T14:40:09.703 回答
1

jQuery Mobile - .ready() 与页面事件

对于 jQuery Mobile,请不要.ready()在您的代码中使用。坚持 jQuery Mobile 事件http://api.jquerymobile.com/category/events/

在您的情况下,您可以使用pagebeforeshowor pageshow。因此,您的代码应如下所示。

$('.selector').on('pagebeforeshow', function () {
 // code
});
于 2013-04-27T14:58:03.470 回答
0
$(document).ready(function(){

$("#panelforminput div").removeClass("ui-shadow-inset ui-corner-all ui-btn-shadow ui-body- 
c");
$("#newdoctorDiv ul").removeClass("ui-shadow");
});

只需要在 ready 函数中编写的 jQuery 代码。

看这里

于 2013-04-27T14:41:41.593 回答