jquery .makeEditable селектор - PullRequest
       33

jquery .makeEditable селектор

0 голосов
/ 01 марта 2012

используя datatables и jeditable плагины. Всякий раз, когда я использую этот селектор:. $ ('Td [class! = "Readonly"]'), я не могу делать встроенные правки. Если я закомментирую селектор, то все отлично работает. Я не хочу редактировать столбец флажка по очевидным причинам.

любая помощь?

спасибо !!

вот мой инициат.

$(document).ready(function() {
    $('#example').dataTable({
        "sAjaxSource": "js/DataTables-1.9.0/scripts/server_processing.php",
                "aoColumns": [
                            {"bVisible": false },//id                                                                                               
                            {},//code
                            {},//project
                            {},//task
                            {},//type
                            {},//description
                            {"fnRender": function (oObj) {
                                return "<input type='checkbox' class='readonly' value='" + oObj.aData[0] + "' name='check'>";
                                },
                            "sClass": "readonly",
                            "bSearchable": false,
                            "bSortable": false
                            }//checkbox
                            ]

                })
                .$('td[class!="readonly"]')
                .makeEditable({
                    "sUpdateURL": "js/DataTables-1.9.0/scripts/server_editing.php"
            })
        } );

Вот мой стол:

<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
    <tr>
        <th width="2%">ID</th>                  
        <th width="10%">Code</th>
        <th width="10%">Project</th>
        <th width="10%">Task</th>
        <th width="10%">Type</th>
        <th width="50%">Description</th>
        <th width="2%">Delete</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td class="dataTables_empty">Loading data from server</td>
        <td class="dataTables_empty">Loading data from server</td>
        <td class="dataTables_empty">Loading data from server</td>
        <td class="dataTables_empty">Loading data from server</td>
        <td class="dataTables_empty">Loading data from server</td>
        <td class="dataTables_empty">Loading data from server</td>
        <td align="center" class="readonly">Loading data from server</td>
    </tr>
</tbody>
<tfoot>
    <tr>
        <th>ID</th>              
        <th>Code</th>
        <th>Project</th>
        <th>Task</th>
        <th>Type</th>
        <th>Description</th>
        <th>Delete</th>   
    </tr>
</tfoot>

редактировать

спасибо за синтаксис, помогите всем.

Я изменил это на это, но все еще не играли в кости ?? Опять снятие селектора встроенного редактирования работает .??

$(document).ready(function() {
    $('#example').dataTable({options});
    $('td').each(function(){
        var self = $(this);
        if(self.hasClass("readonly") != true){
            self.makeEditable({"sUpdateURL": "js/DataTables-1.9.0/scripts/server_editing.php"})
        }
    });
});

Ответы [ 3 ]

0 голосов
/ 01 марта 2012

Вы используете цепочку в неправильном порядке:

$('#example').dataTable(options)
  .find('td[class!="readonly"]')
  .makeEditable(options);

// Next code is probably lead to error due to fact that $ isn't exists
// in result of dataTable function, thus leading to makeEditable not run...
$('#example').dataTable(options)
  .$('td[class!="readonly"]')
  .makeEditable(options);
0 голосов
/ 28 июня 2012

Изменить это:

$('#example').dataTable(options)
     .$('td[class!="readonly"]')
     .makeEditable(options);

в это:

$('#example').dataTable(options)
     .$('td').not(".readonly")
     .makeEditable(options);
0 голосов
/ 01 марта 2012

Попробуйте использовать $().hasClass();

Вы не должны связывать их вместе, элемент jquery не является методом или свойством другого ... Я удивлен, что он работает и со снятым селектором ...попробуйте это:

$(document).ready(function() {
    $('#example').dataTable({
       "sAjaxSource": "js/DataTables-1.9.0/scripts/server_processing.php",
       "aoColumns": [
          {"bVisible": false},//id     
          {},//code
          {},//project
          {},//task
          {},//type
          {},//description
         {"fnRender": function (oObj) {
               return "<input type='checkbox' class='readonly' value='" + oObj.aData[0] + "' name='check'>";
         },
        "sClass": "readonly",
        "bSearchable": false,
        "bSortable": false
        }//checkbox
     ]

    });
    $('td').each(function(){
        var self = $(this);
        if(self.hasClass("readonly") != true){
            self.makeEditable({"sUpdateURL": "js/DataTables-1.9.0/scripts/server_editing.php"})
         }
    });
});
...