Browse Source

Fix #1071: detailView item ignore click to select option.

zhixin 10 years ago
parent
commit
395d0d7ada
1 changed files with 12 additions and 11 deletions
  1. 12 11
      src/bootstrap-table.js

+ 12 - 11
src/bootstrap-table.js

@@ -640,7 +640,6 @@
             sorters: [],
             sorters: [],
             sortNames: [],
             sortNames: [],
             cellStyles: [],
             cellStyles: [],
-            clickToSelects: [],
             searchables: []
             searchables: []
         };
         };
 
 
@@ -687,7 +686,6 @@
                     that.header.sorters[column.fieldIndex] = column.sorter;
                     that.header.sorters[column.fieldIndex] = column.sorter;
                     that.header.sortNames[column.fieldIndex] = column.sortName;
                     that.header.sortNames[column.fieldIndex] = column.sortName;
                     that.header.cellStyles[column.fieldIndex] = column.cellStyle;
                     that.header.cellStyles[column.fieldIndex] = column.cellStyle;
-                    that.header.clickToSelects[column.fieldIndex] = column.clickToSelect;
                     that.header.searchables[column.fieldIndex] = column.searchable;
                     that.header.searchables[column.fieldIndex] = column.searchable;
 
 
                     if (!column.visible) {
                     if (!column.visible) {
@@ -1535,20 +1533,23 @@
             var $td = $(this),
             var $td = $(this),
                 $tr = $td.parent(),
                 $tr = $td.parent(),
                 item = that.data[$tr.data('index')],
                 item = that.data[$tr.data('index')],
-                cellIndex = $td[0].cellIndex,
-                $headerCell = that.$header.find('th:eq(' + cellIndex + ')'),
-                field = $headerCell.data('field'),
+                index = $td[0].cellIndex,
+                field = that.header.fields[that.options.detailView && !that.options.cardView ? index - 1 : index],
+                colomn = that.columns[getFieldIndex(that.columns, field)],
                 value = item[field];
                 value = item[field];
 
 
+            if ($td.find('.detail-icon').length) {
+                return;
+            }
+
             that.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);
             that.trigger(e.type === 'click' ? 'click-cell' : 'dbl-click-cell', field, value, item, $td);
             that.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr);
             that.trigger(e.type === 'click' ? 'click-row' : 'dbl-click-row', item, $tr);
+
             // if click to select - then trigger the checkbox/radio click
             // if click to select - then trigger the checkbox/radio click
-            if (e.type === 'click' && that.options.clickToSelect) {
-                if (that.header.clickToSelects[$tr.children().index($(this))]) {
-                    var $selectItem = $tr.find(sprintf('[name="%s"]', that.options.selectItemName));
-                    if ($selectItem.length) {
-                        $selectItem[0].click(); // #144: .trigger('click') bug
-                    }
+            if (e.type === 'click' && that.options.clickToSelect && colomn.clickToSelect) {
+                var $selectItem = $tr.find(sprintf('[name="%s"]', that.options.selectItemName));
+                if ($selectItem.length) {
+                    $selectItem[0].click(); // #144: .trigger('click') bug
                 }
                 }
             }
             }
         });
         });