2013-04-24 71 views
0

我使用jQuery在PHP應用程序中創建功能區菜單。我使用http://code.google.com/p/jquery-officebar/創建功能區菜單。如何將新li永久添加到jquery ribbon?

功能區菜單是在我的應用程序中創建的,但需要在一個菜單項上創建,而不是應該打開到另一個選項卡。之後我們需要能夠分別關閉該選項卡。

功能區菜單使用<ul><li>標籤創建。我試着添加一個新的菜單項lionclick。代碼爲:

$("#testRibbon ul").append('<li class="current"><span>Message Center</span></li>'); 

但我無法修復這個li。意味着當頁面被刷新時,li已被刪除。

誰能告訴我如何添加一個新的li功能區菜單的ul

+0

刷新頁面時,頁面將再次開始顯示作爲響應發送的內容。所以,無論你通過jquey加入的東西都會消失。 – 2013-04-24 04:29:18

+0

我並沒有完全理解這個問題,但是我看到它的方式,您希望添加的li標籤保持原樣,當頁面重新加載時。這不會發生,因爲li標籤是動態添加的。瀏覽器刷新頁面時很自然。如果你希望他們留下來,你可能需要使用一些服務器腳本。你也可以通過使用AJAX來實現這一點。 – 2013-04-24 04:44:56

+0

如何通過AJAX實現這一點? – Mausami 2013-04-24 05:16:59

回答

0

使用

$("#testRibbon > ul").append('<li><a href="#" rel="my-rel" >Message Center</a></li>'); 
+0

謝謝阿倫。但它給了我同樣的結果。 – Mausami 2013-04-24 05:16:35

0

我的回答您的評論(如何做到這一點的AJAX):

這是做一個混亂的方式,但是這給了你,(我認爲)結果或數據U想:

的index.php:

<?php session_start(); ?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <title>AJAX</title> 
     <style> 
      .obj { 
       padding:15px 15px; 
       background:red; 
      } 
     </style> 
    </head> 
    <body> 

     <div class="obj">Click Me</div> 

     <ul class="items"> 
     </ul> 

     <script type="text/javascript" src="jquery-1.8.0.min.js"></script> 
     <script type="text/javascript"> 
      $(function() { 

      //Retrieve current SESSION li tags 

      $.ajax({ 
       type : 'POST', 
       url : 'ajax.php', 
       success: function(data) { 
        var json = $.parseJSON(data); 
        $.each(json, function(i, serverData) { 
         $('.items').append('<li class="item">' + serverData + '</li>'); 
        }); 
       } 

      }); 

      //add li tags and store to session 

      var counter = 0; 
      $('.obj').on('click', function() { 

       counter++; 
       $('.items').append('<li class="item">Foo' + counter + '</li>'); 

       var form_data, 
        li_array = new Array(); 

       $('.item').each(function() { 
        li_array.push($(this).html()); 
       }); 

       form_data = { 
        data : li_array 
       }; 

       //set.php sets the SESSION data and appends the li tags to it for future reference 
       $.ajax({ 
        type : 'POST', 
        url : 'set.php', 
        data : form_data 
       }); 

      }); 

     }); 
     </script> 
    </body> 
</html> 

ajax.php:

<?php 
session_start(); 

echo json_encode($_SESSION['li']); 

?> 

set.php:

<?php 
session_start(); 

$_SESSION['li'] = array(); 

foreach ($_POST['data'] as $data) { array_push($_SESSION['li'], $data); } 

echo json_encode($_SESSION['li']); 

?> 

注意:這將保留李標籤。取消它們的方法是清除會話。