.removeClass()处理jsFiddle但不在浏览器中

时间:2013-04-27 14:34:23

标签: jquery jquery-mobile

我正在使用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/

这是来自firebug的标记:

<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>

3 个答案:

答案 0 :(得分:4)

您需要将脚本放在代码document.ready中,以使脚本可用的元素也确保您成功包含jQuery,阅读how jQuery works

  

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

答案 1 :(得分:1)

  

jQuery Mobile - .ready() vs page events

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

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

$('.selector').on('pagebeforeshow', function () {
 // code
});

答案 2 :(得分: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代码。

SEE HERE