Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在另一个jquery中包含一些jquery代码,而不复制和粘贴_Jquery - Fatal编程技术网

在另一个jquery中包含一些jquery代码,而不复制和粘贴

在另一个jquery中包含一些jquery代码,而不复制和粘贴,jquery,Jquery,我尽量避免在这里复制和粘贴。我有一个jquery,它是一个.submit,还有一个ajax,它是模糊。submit有一些var和其他一些我想包含在blur函数中的代码位,但我想避免复制和粘贴问题。请告诉我如何才能做到这一点 提交 //下面的代码是我需要包含在blur函数中的代码 var buttonWidth=$('#guess button').width(); var buttonCopy = $('#guessbutton').html(),

我尽量避免在这里复制和粘贴。我有一个jquery,它是一个.
submit
,还有一个ajax,它是<代码>模糊。
submit
有一些
var
和其他一些我想包含在
blur
函数中的代码位,但我想避免复制和粘贴问题。请告诉我如何才能做到这一点

提交

//下面的代码是我需要包含在
blur
函数中的代码

        var buttonWidth=$('#guess button').width();
        var buttonCopy = $('#guessbutton').html(),
        errorGuess = $('#guess button').data('error-guess'),
        sendGuess = $('#guess button').data('send-guess'),
        okGuess= $('#guess button').data('ok-guess'),
        hasError = false;
     }
模糊

//我需要在这里包含
submit
中的代码,但我不想复制和粘贴

 }
p、 jquery和ajax都在一个文件中


请建议

只需创建一个包装器函数,封装您需要的所有功能,否则您将复制这些功能

//Might not be valid syntax, my javascript is a bit rusty as I haven't done any in a few months. But it gives you the idea.
function wrapper(){
        var buttonWidth=$('#guess button').width();
        var buttonCopy = $('#guessbutton').html(),
        errorGuess = $('#guess button').data('error-guess'),
        sendGuess = $('#guess button').data('send-guess'),
        okGuess= $('#guess button').data('ok-guess'),
        hasError = false;
}
试一下:

$('#guess').on('validate', function() {
    var buttonWidth=$('#guess button').width();
    var buttonCopy = $('#guessbutton').html(),
    errorGuess = $('#guess button').data('error-guess'),
    sendGuess = $('#guess button').data('send-guess'),
    okGuess= $('#guess button').data('ok-guess'),
    hasError = false;
}
$('#guess').submit(function() {
    $(this).trigger('validate');
});

$('#number').blur(function() {
    var number = $(this).val();
    $('#guess').trigger('validate');
});

如果我理解您的问题,请将代码放在一个单独的函数中,如下所示:

    function yourName (){
      var buttonWidth=$('#guess button').width();
      var buttonCopy = $('#guessbutton').html(),
      errorGuess = $('#guess button').data('error-guess'),
      sendGuess = $('#guess button').data('send-guess'),
      okGuess= $('#guess button').data('ok-guess'),
      hasError = false;
    }
然后调用你的函数

    $('#guess').submit(function() {
       yourName();
    }

    $('#number').blur(function() {
      var number = $(this).val();
      yourName();
    }

祝你好运

然后尝试编写函数。并在任何地方调用该fn,比如:
var a=function(){…code…};并调用fn a()
。SimpleSo将相关代码包装在函数中,并将函数调用在两者中handlers@A.Wolff我做了,但我仍然需要复制
var buttonWidth=$(“#联系人表单按钮”).width();var buttonCopy=$('#contact form button').html(),
,因为当我在其他地方调用它时,它没有得到包含function@user3057514您可以将函数包装到另一个函数中,并使用参数调用函数。有很多方法可以处理它。我在所有答案中都意识到,我仍然需要复制
var buttonWidth=$(“#contact form button”).width();var buttonCopy=$(“#contact form button”).html(),
,因为它不包括在
submit
blur
函数中。我对javascript不太感兴趣,但它是我需要花时间学习的东西之一。这个模式不仅仅适用于javascript,它适用于几乎所有语言。代码重用是一个极其重要的概念,有无数种方法可以做到这一点。如果您想了解更多关于代码重用的信息,那么软件设计模式是一件值得关注的事情。
    function yourName (){
      var buttonWidth=$('#guess button').width();
      var buttonCopy = $('#guessbutton').html(),
      errorGuess = $('#guess button').data('error-guess'),
      sendGuess = $('#guess button').data('send-guess'),
      okGuess= $('#guess button').data('ok-guess'),
      hasError = false;
    }
    $('#guess').submit(function() {
       yourName();
    }

    $('#number').blur(function() {
      var number = $(this).val();
      yourName();
    }