如何在jQuery中加载页面并在onclick之后执行某些操作?

时间:2015-02-25 06:46:56

标签: javascript jquery

我有一些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();");

});

现在和任何程序员一样,我喜欢将代码保持在最低限度。

有没有办法避免重复相同的命令?

我可以在页面加载和用户点击任何地方时运行相同的代码行吗?

由于

2 个答案:

答案 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();