2014-11-23 54 views
0

我想知道下面這行是否需要在這個腳本中,如果是的話,它的用途是什麼。什麼是jQuery focus()在此代碼中執行的方法?

$("#quantity-0").focus(); 

如果我沒有表單域ID爲「量-0」,我可以專注什麼其他元素(如果需要的話)?我可以關注隱藏的表單元素嗎?

這是我的代碼。它來自this blog

<script type="text/javascript" charset="utf-8"> 
//<![CDATA[ 
// Including jQuery conditionnally. 
if (typeof jQuery === 'undefined') { 
    document.write({{ "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" | script_tag | json }}); 
    document.write('<script type="text/javascript">jQuery.noConflict();<\/script>'); 
} 
//]]> 
</script> 

<script> 

$(document).ready(function() { 
    $("#quantity-0").focus();  
    var length = $("#linklist-length").val(); 
    $("#submit-table").click(function(e) {  
     e.preventDefault(); 
     //array for Variant Titles 
     var toAdd = new Array(); 
     var qty; 
     for(i=0; i < length; i++){ 

      toAdd.push({ 
       variant_id: $("#variant-"+i).val(),   
       quantity_id: $("#quantity-"+i).val() || 0 
      }); 
     } 
     function moveAlong(){ 
      if (toAdd.length) { 
       var request = toAdd.shift(); 
       var tempId= request.variant_id; 
       var tempQty = request.quantity_id; 
       var params = { 
        type: 'POST', 
        url: '/cart/add.js', 
        data: 'quantity='+tempQty+'&id='+tempId, 
        dataType: 'json', 
        success: function(line_item) { 
         //console.log("success!"); 
         moveAlong(); 

        }, 
        error: function() { 
         //console.log("fail"); 
         moveAlong(); 

        } 
       }; 
       $.ajax(params); 
      } 
      else {    
       document.location.href = '/cart'; 
      } 
     }; 
     moveAlong(); 
    }); 
}); 

</script> 
+0

我給出的鏈接(http://www.tetchi.ca/shopify-tutorial-order-form/)描述了所有這些。該腳本將商品添加到購物車。 – MountainX 2014-11-23 03:02:52

回答

1

我想知道,如果線以下,需要在這個腳本,如果是這樣,什麼目的服務。

在沒有參數的情況下調用jQuery .focus() method會將焦點設置爲指定的元素。該行是文檔就緒處理程序中的第一行。因此其目的是在頁面首次打開/加載時將焦點設置到該特定字段。

至於是否需要,這是真的取決於頁面設計者。將焦點設置到用戶最想要首先與之交互的領域通常對他們有幫助。如果你沒有,它不會阻止工作或任何其他網頁。

如果我沒有ID爲「quantity-0」的表單字段,我可以關注哪些其他元素(如果需要)?

您可以將焦點設置爲任何您喜歡的元素。通常這可能是某種形式的元素(輸入,按鈕等)或超鏈接。無論哪一個對用戶來說都是一次一頁加載交互最有意義的。

我可以關注一個隱藏的表單元素嗎?

爲什麼要這麼做?用戶與隱藏元素交互沒有意義。我相信嘗試將焦點設置爲隱藏元素可能會在某些瀏覽器中出現錯誤。

+0

謝謝。我想你回答了我的問題。這僅僅是一個便利功能,它並不是實際需要它下面任何代碼的正確功能。正確? – MountainX 2014-11-23 03:06:56

+0

這是正確的。 – nnnnnn 2014-11-23 03:07:43

+0

謝謝。非常有用的答案。只要網站允許,我會盡快接受你的回答(3分鐘)。 – MountainX 2014-11-23 03:09:08