2014-11-23 79 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