2012-03-07 33 views
1

顯示在頁面加載一個div我需要知道如何顯示在jQuery Mobile的頁面加載特定的div(而不是網頁,只需一個div)。這裏的HTML:如何在jQuery的

<div data-role="page"> 
    <div data-role="navbar"> 
    <ul> 
     <li><a href="#" data-href="sun">Sun</a></li> 
     <li><a href="#" data-href="mon">Mon</a></li> 
     <li><a href="#" data-href="tue">Tue</a></li> 
     <li><a href="#" data-href="wed">Wed</a></li> 
     <li><a href="#" data-href="thu">Thu</a></li> 
     <li><a href="#" data-href="fri">Fri</a></li> 
     <li><a href="#" data-href="sat">Sat</a></li> 
    </ul> 
    </div><!-- /navbar --> 
    <div id="sun" class="content_div">Sunday</div> 
    <div id="mon" class="content_div">Monday</div> 
    <div id="tue" class="content_div">Tuesday</div> 
    <div id="wed" class="content_div">Wednesday</div> 
    <div id="thu" class="content_div">Thursday</div> 
    <div id="fri" class="content_div">Friday</div> 
    <div id="sat" class="content_div">Saturday</div> 

</div> 

我使用jQuery談判的標籤,所以我的JS是jQuery Mobile的源撥打以上。下面是代碼:

function getHandler(handler) { 
     var days = ['sun','mon','tue','wed','thu','fri','sat'], 
      d = new Date(), 
      today = d.getDay(); 

     for (x=0; x<days.length; x++) { 
      if (x === today) { handler = days[x]; } 
     } 
    } 

    $(document).delegate('[data-role="navbar"] a', 'click', function() { 
     $(this).addClass('ui-btn-active'); 
     $('.content_div').hide(); 
     $('#' + $(this).attr('data-href')).show(); 
    }); 

我的目標是,在最初的文檔加載,對應於一週中的當前日在div將顯示

回答

2

試試這個:

function getHandler() { 
    var days = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'], 
     d = new Date(), 
     today = d.getDay(); 
    return days[today]; 
} 

$(document).delegate('[data-role="navbar"] a', 'click', function() { 
    $(this).addClass('ui-btn-active'); 
    $('.content_div').hide(); 
    $('#' + $(this).attr('data-href')).show(); 
}); 

$(document).ready(function(){ 
    $('[data-href="' + getHandler() + '"]').trigger('click'); 
}) 
​ 
+0

您的解決方案看起來比我乾淨。謝謝! – 2012-03-07 04:18:58

+0

謝謝,從來沒有注意到你的答案通過!對於初學者來說,過度的for循環可以免掉,因爲它簡單地循環,直到'x'的值達到該的'today',然後在對應的'days'數組的索引返回項目!! – bPratik 2012-03-07 04:24:38

+0

是的。我試圖儘可能少地修改他的代碼,以防其他地方有額外的調用。 – 2012-03-07 04:43:30

1

我修改了你的getHandler()返回值

js代碼如下:

function getHandler() { 
    var days = ['sun','mon','tue','wed','thu','fri','sat'], 
     handler = null, 
     d = new Date(), 
     today = d.getDay(); 

    for (x=0; x<days.length; x++) { 
     if (x === today) { handler = days[x]; } 
    } 
    return handler; 
} 

$(document).delegate('[data-role="navbar"] a', 'click', function() { 
    $(this).addClass('ui-btn-active'); 
    $('.content_div').hide(); 
    $('#' + $(this).attr('data-href')).show(); 
}); 

function displayTodayDiv() { 
    var h = getHandler(); 
    $('.content_div').hide(); 
    $("#"+h).show(); 
} 

$(document).ready(displayTodayDiv);​ 
+0

'ready'不是使用jQuery Mobile的結合時,一個很好的事件。請參閱http://jquerymobile.com/demos/1.0.1/docs/api/events.html – Walf 2012-03-27 03:22:31