2013-12-06 4 views
0

Так что это немного сложныйCSS стиль не прилипает

Я создал приложение, использующее phonegap. Я пытаюсь реализовать список дел. Я нашел отличный пример javascript-метода, который я поместил в основной документ index.html.

Так, когда приложение первые запуски, он отлично работает и выглядит так, как он должен:

enter image description here

это позволяет мне добавить новые для DOS, проверить кучу, чтобы удалить, или нажмите кнопку для удалять их и т.д.

, но когда я закрыть приложение и повторно загрузить его, он теряет все стили и удалять кнопки больше не работает:

enter image description here

, но это я нажимаю ДОБАВИТЬ ТОВАР, новые элементы шоу в стиле они, как предполагается, ...

enter image description here

Итак, вот код в index.html головки для сценариев:

<script type="text/javascript" language="JavaScript"> 

    //Create a new To-Do 
    function createNewToDo() 
    { 
     var todoDictionary = {}; 
     //Prompt the user to enter To-Do 
     var todo="ASSIGNMENT NAME"; 
     var todolink="index.html#fastshutter"; 
     if (todo!=null) 
     { 
      if (todo == "") 
      { 
       alert("To-Do can't be empty!"); 
      } 
      else 
      { 
       //Append the new To-Do with the table 
       todoDictionary = { check : 0 , text : todo , text2 : todolink}; 
       addTableRow(todoDictionary,false); 
      } 
     } 

    } 

    //Add a row to the table 
    var rowID = 0; 
    function addTableRow(todoDictionary, appIsLoading) 
    { 

     rowID +=1; 
     var table = document.getElementById("dataTable"); 
     var rowCount = table.rows.length; 
     var row = table.insertRow(rowCount); 

     //Set up the CheckBox 
     var cell1 = row.insertCell(0); 
     var element1 = document.createElement("input"); 
     element1.type = "checkbox"; 
     element1.name="chkbox[]"; 
     element1.checked = todoDictionary["check"]; 
     element1.setAttribute("onclick","checkboxClicked()"); 
     element1.className = "checkbox"; 
     cell1.appendChild(element1); 

     //Set up the TextBox 
     var cell2 = row.insertCell(1); 
     var element2 = document.createElement("input"); 
     element2.type = "text"; 
     element2.name = "txtbox[]"; 
     element2.size = 16; 
     element2.id = "text"+rowID; 
     element2.value = todoDictionary["text"]; 
     element2.setAttribute("onchange","saveToDoList()"); 
     element2.className = "textbox"; 
     cell2.appendChild(element2); 

     //Set up the View Button 
     var cell3 = row.insertCell(2); 
     var element3 = document.createElement("input"); 
     element3.type = "button"; 
     element3.id = rowID; 
     element2.value = todoDictionary["text"]; 

     element3.setAttribute("onclick","window.open('index.html#fastshutter','_self')"); 
     element3.className = "viewButton"; 
     cell3.appendChild(element3); 

     //Set up the Delete Button 
     var cell4 = row.insertCell(3); 
     var element4 = document.createElement("input"); 
     element4.type = "button"; 

     element4.setAttribute("onclick","deleteSelectedRow(this)"); 
     element4.className = "deleteButton"; 
     cell4.appendChild(element4); 

     //Save & Update UI 
     checkboxClicked(); 
     saveToDoList(); 

     if (!appIsLoading) 
     alert("Task Added Successfully."); 
    } 


    //Add storke to completed tasks text 
    function checkboxClicked() 
    { 

     //Get current table 
     var table = document.getElementById("dataTable"); 
     var rowCount = table.rows.length; 

     //Loop through all rows 
     for(var i=0; i<rowCount; i++) 
     { 
      var row = table.rows[i]; 
      var chkbox = row.cells[0].childNodes[0]; 
      var textbox = row.cells[1].childNodes[0]; 

      //checkbox is checked 
      if(null != chkbox && true == chkbox.checked) 
      { 
       if(null != textbox) 
       { 
        textbox.style.setProperty("text-decoration", "line-through"); 
       } 
      } 

      //checkbox is not checked 
      else 
      { 
       textbox.style.setProperty("text-decoration", "none"); 
      } 

     } 
     //Save 
     saveToDoList(); 
    } 



    //Views textField's content of the selected row 
    function viewSelectedRow(todoTextField) 
    { 
     alert(todoTextField.value); 
    } 


    //Deletes current row 
    function deleteSelectedRow(deleteButton) 
    { 
     var p=deleteButton.parentNode.parentNode; 
     p.parentNode.removeChild(p); 
     saveToDoList(); 
    } 


    function removeCompletedTasks() 
    { 
     //Get current table 
     var table = document.getElementById("dataTable"); 
     var rowCount = table.rows.length; 

     //Loop through all rows 
     for(var i=0; i<rowCount; i++) 
     { 
      //Delete row if checkbox is checked 
      var row = table.rows[i]; 
      var chkbox = row.cells[0].childNodes[0]; 
      if(null != chkbox && true == chkbox.checked) 
      { 
       table.deleteRow(i); 
       rowCount--; 
       i--; 
      } 


     } 

     //Save 
     saveToDoList(); 
     alert("Completed Tasks Were Removed Successfully."); 

    } 


    function saveToDoList() 
    { 
     //Create a todoArray 
     var todoArray = {}; 
     var checkBoxState = 0; 
     var textValue = ""; 

     //Get current table 
     var table = document.getElementById("dataTable"); 
     var rowCount = table.rows.length; 

     if (rowCount != 0) 
     { 
      //Loop through all rows 
      for(var i=0; i<rowCount; i++) 
      { 
       var row = table.rows[i]; 

       //Add checkbox state 
       var chkbox = row.cells[0].childNodes[0]; 
       if(null != chkbox && true == chkbox.checked) 
       { 
        checkBoxState = 1; 
       } 
       else 
       { 
        checkBoxState= 0; 
       } 


       //Add text data 
       var textbox = row.cells[1].childNodes[0]; 
       textValue = textbox.value; 

       //Fill the array with check & text data 
       todoArray["row"+i] = 
       { 
        check : checkBoxState, 
        text : textValue 
       }; 

      } 
     } 
     else 
     { 
      todoArray = null; 
     } 

     //Use local storage to persist data 
     //We use JSON to preserve objects 

     window.localStorage.setItem("todoList", JSON.stringify(todoArray)); 
    } 



    function loadToDoList() 
    { 

     //Get the saved To-Do list array by JSON parsing localStorage 
     var theList = JSON.parse(window.localStorage.getItem("todoList")); 


     if (null == theList || theList=="null") 
     { 
      deleteAllRows(); 
     } 
     else 
     { 
      var count = 0; 
      for (var obj in theList) 
      { 
       count++; 
      } 

      //Clear table 
      deleteAllRows(); 
      //Loop through all rows 
      for(var i=0; i<count; i++) 
      { 
       //Add row 
       addTableRow(theList["row"+i],true); 
      } 

     } 

    } 



    function deleteAllRows() 
    { 
     //Get current table 
     var table = document.getElementById("dataTable"); 
     var rowCount = table.rows.length; 

     //Loop through all rows 
     for(var i=0; i<rowCount; i++) 
     { 
      //delete row 
      table.deleteRow(i); 
      rowCount--; 
      i--; 
     } 

     //Save 
     saveToDoList(); 
    } 




    </script> 

и стиль (также в голове)

<style type="text/css"> 

/* BeginOAWidget_Instance_2127022: #gallery */

.viewButton { 
    background-color:Transparent; 
    width:50px 
    height:32px; 
} 

.deleteButton { 
    background-color:Transparent; 
    width:30px; 
    height:30px; 
} 

Вот HTML-код для реализации страницы:

<body bgcolor="#e0e0e0" onload="loadToDoList()" > 

<div data-role="page" id="favlist"> 
<div data-role="header"> 
<h1><a href="#choose" data-role="button" data-icon="arrow-l" data-iconpos="right">BACK</a> Favourites </h1> 
</div> 
<div data-role="content"> 
    <button type="button" class="addToDo" onclick="createNewToDo()">ADD</button> 
    <button type="button" class="removeTasks" onclick="removeCompletedTasks()">REMOVE</button> 
    <br/><br/><br/> 
    <table id="dataTable" width="100%" border="0"> 
    </table> 
<a href="#choose" data-role="button" data-theme="a">CLOSE</a> 
</div> 
</div> 

Так что я не уверен, что если файл CSS jquerymobile мешает это может быть?

Спасибо за любые советы

EDIT: Я был в состоянии понять это. Мне нужно было полностью переопределить jQuery mobile CSS для элементов кнопки, добавив новый класс кнопок в jquery css. При первом запуске и добавлении новых элементов он использовал встроенные стили, которые я вложил в HTML, но при перезагрузке он вытягивал стандартные стили.

+2

Я не могу сказать, о чем вы говорите. Возможно, вы могли бы сделать изображения немного большими. –

+0

изображения - это то, что будет отображаться на экране iphone ... я не могу сделать их больше. Кнопки ADD/REMOVE находятся сверху, а две строки ASSIGNMENT NAMES - это то, что добавляется, когда вы нажимаете кнопку ADD. Другие кнопки справа от названия не помечены, но это кнопки просмотра и удаления. –

+0

Извините, это был сарказм. Они достаточно большие. Довольно. –

ответ

0

Я смог разобраться. Мне нужно было полностью переопределить jQuery mobile CSS для элементов кнопки, добавив новый класс кнопок в jquery css. При первом запуске и добавлении новых элементов он использовал встроенные стили, которые я вложил в HTML, но при перезагрузке он вытягивал стандартные стили

Смежные вопросы