我有一些javascript:
// when page LOADS:
// update PassMark score
$("#passmark").attr("onclick", "window.open('https://www.google.ca/search?num=20&q=site%3Avideocardbenchmark.net+" + encodeURIComponent( $("input[name='vc_gpu_engine']").val() ).replace(/%20/g, "+") + "', 'url', 'status,scrollbars=yes,height=900,width=1050').focus();");
// if any field is changed AFTER the page loads, then run these
$("body").click(function() {
// update PassMark score
$("#passmark").attr("onclick", "window.open('https://www.google.ca/search?num=20&q=site%3Avideocardbenchmark.net+" + encodeURIComponent( $("input[name='vc_gpu_engine']").val() ).replace(/%20/g, "+") + "', 'url', 'status,scrollbars=yes,height=900,width=1050').focus();");
});
现在和任何程序员一样,我喜欢将代码保持在最低限度。
有没有办法避免重复相同的命令?
我可以在页面加载和用户点击任何地方时运行相同的代码行吗?
由于
答案 0 :(得分:3)
var func = function () {
$("#passmark").attr("onclick", "window.open('https://www.google.ca/search?num=20&q=site%3Avideocardbenchmark.net+" + encodeURIComponent($("input[name='vc_gpu_engine']").val()).replace(/%20/g, "+") + "', 'url', 'status,scrollbars=yes,height=900,width=1050').focus();");
}
$(document).ready(function () {
func();
$("body").click(function () {
func();
});
});
这样您也可以使用func()
。
编辑 更短
var func = function () {
$("#passmark").attr("onclick", "window.open('https://www.google.ca/search?num=20&q=site%3Avideocardbenchmark.net+" + encodeURIComponent($("input[name='vc_gpu_engine']").val()).replace(/%20/g, "+") + "', 'url', 'status,scrollbars=yes,height=900,width=1050').focus();");
}
$(function(){
func();
$("body").click(func);
});
答案 1 :(得分:0)
绑定事件处理程序并立即触发它:
$("body").click(function() {
// update PassMark score
$("#passmark").attr("onclick", "window.open('https://www.google.ca/search?num=20&q=site%3Avideocardbenchmark.net+" + encodeURIComponent( $("input[name='vc_gpu_engine']").val() ).replace(/%20/g, "+") + "', 'url', 'status,scrollbars=yes,height=900,width=1050').focus();");
}).click();