jQuery

[jQuery] .index() 取得某元素於指定的元素列表中的 索引值(index)

API說明文件:https://api.jquery.com/index/

因為曾經沒仔細看api ,導致程式一直出錯,所以做個筆記

有三種用法

  1. 不加任何參數 : .index()
    取得第一個符合的元素之索引值
     
  2. 加入選擇器來篩選: .index(selector)
    直接放入字串,就可以自動轉譯成選擇器
    如 $('.obj').index('.list'); // 找出 .obj 在 .list中的索引位置。
     
  3. 直接放入html元素篩選:.index(element)
    也可以直接把 jquery物件 或 DOM 物件 放進去,但用法上跟上面的方法會反過來
    如 $('.list').index($('.obj')); // 找出 .obj 在 .list中的索引位置。

舉例來說,

資料分組

以下示範把所有 class=myitems 的div做分組,兩兩為一組

javascript

var lis = $(".myitem");
for(var i = 0; i <= lis.length; i+=2) {
   if( i == lis.length){
     lis.slice(i).wrapAll("
 

"); }else{ lis.slice(i, i+2).wrapAll("

 

"); } }

解決CSS的:hover語法於ipad中失效問題

CSS的:hover語法,再Android手機中,可以自動轉為touch效果。但這在iOS的觸控行動裝置(ipad,iphone)中會失效,此時只能依靠javascript註冊event來處理。語法如下:

$('selector').bind('touchstart touchend', function(e) {
    e.preventDefault(); //如果是連結的話,需要先移除連結的預設功能,避免一touch就轉頁了
    $(this).toggleClass('ishover');//為被touch的物件增減一個ishover的class
});

[jQuery] 停用<a>的作用

有時候我們會以<a>作為按鈕來觸發一些動作,但因為在沒有設定href的狀況下,會將頁面帶向頁首(page top),要避免這個情況,就可以利用以下的語法來把這個瀏覽器預設動作取消掉:

 
$('a').click(function(e){
      e.preventDefault();
    });

[jQuery]偵測捲軸位置

jQuery 提供了兩個函數,可用來回傳目前捲軸位置,也可以用來設定捲軸位置。這兩個函數分別是:.scrollTop().scrollLeft()。顧名思義,前者是用在直向捲軸,後者則是橫向捲軸。

可以用於視窗(window),也可以用於任何一個塊級(block)元素,如<div>、<p>...等。

回傳值及設定值均為整數。

用法如下:

  $(window).scrollTop(300); //設定視窗捲軸位置
  var sc_pos=$(window).scrollTop(); //取得捲軸位置

而要取得即時的捲軸位置,則要透過 .scroll() ,用法如下: