我想知道这个脚本中是否需要下面的行,如果需要,它的用途是什么。
$("#quantity-0").focus();
如果我没有 ID 为“quantity-0”的表单字段,我可以关注哪些其他元素(如果需要)?我可以聚焦隐藏的表单元素吗?
这是我的代码。它来自这个博客。
<script type="text/javascript" charset="utf-8">
//<![CDATA[
// Including jQuery conditionally.
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>
我想知道这个脚本中是否需要下面的行,如果需要,它的用途是什么。
不带参数调用 jQuery
.focus()
方法 将焦点设置到指定元素。该行是文档就绪处理程序中的第一行。因此,其目的是在页面首次打开/加载时将焦点设置到该特定字段。
至于是否需要,这实际上取决于页面设计者。将焦点设置到用户最有可能首先想要交互的字段通常对他们有帮助。如果您没有它,它不会阻止页面工作或任何其他事情。
如果我没有 ID 为“quantity-0”的表单字段,我可以关注哪些其他元素(如果需要)?
您可以将焦点设置到您喜欢的任何元素。通常,这可以是某种表单元素(输入、按钮等)或超链接。无论哪一个对用户在页面加载时首先进行交互最有意义。
我可以聚焦隐藏的表单元素吗?
你为什么要这么做?用户与隐藏元素交互是没有意义的。我相信尝试将焦点设置到隐藏元素可能会在某些浏览器中出现错误。