2011-09-22 120 views
0
<ol id="selectable"> 
    <li class="ui-widget-content"> 
      <div><input type="checkbox" /></div> 
      <div>Item1</div> 
      <div>Khanput</div> 
      <div>1/2/3</div> 
      <div>15:03:16</div> 
      <div>--------</div> 
      <div>23m</div> 
      <div>Chakwal</div> 
     </li> 
    </ol> 

我只想選擇'li'元素而不是'div',但它會選擇它們全部。 我已經嘗試了一些東西,但他們沒有解決。jquery selectable插件來選擇第一級孩子,而不是孩子的孩子

+0

你能鏈接到的你是什麼樣的例子解試圖實現?不是每個對你的問題感興趣的人都知道jQuery-ui可選擇的是什麼。 –

+0

(單獨的問題)你沒有提供任何JS與你的HTML。有一些與它一起嗎? –

回答

1

如果您將<li>元素設置爲可選,則可以認爲單擊<li>時,其內容中的內容也會變爲「已選中」。

就jQuery UI而言,只有<li>實際上是「選中」的。你可以看到這個,因爲你的<li>在被選中時會被賦予一個ui-selected的等級;相反,其內容是ui-selectee類。

0

您可以添加此定製插件

$.widget("xim.singleSelectable", { 
    options: { 
     select: null 
    }, 
    _create: function() { 
     var self = this; 
     this.element.addClass('ui-selectable'); 
     this.element.delegate('li', 'click', function (e) { 
      self.element.find('>li').removeClass('ui-selected'); 
      $(this).addClass('ui-selected'); 

      if ($.isFunction(self.options.select)) { 
       self.options.select.apply(self.element, [e, this]); 
      } 

     }); 
    }, 
    selected: function() { 
     return this.element.find('li.ui-selected'); 
    }, 
    destroy: function() { 
     $.Widget.prototype.destroy.apply(this, arguments); // default destroy 
    } 
}); 

那麼你的代碼將

$("#selectable").selectable({   
      stop: function() {     
       $("li.ui-selected", this).each(function() { 
        var index = $("#selectable li").index(this);     
        alert(index);          
       });     
      }       
     }); 

我發現這裏 How to prevent multiple selection in jQuery UI Selectable plugin