【问题标题】:How to use a variable after it was a jquery function has runjquery函数运行后如何使用变量
【发布时间】:2018-07-09 02:43:31
【问题描述】:

我意识到以前有人问过类似的问题,但仍然不明白我的代码发生了什么。在用户将他们的序列输入到 textarea 之后,我想在 jQuery 函数之外访问变量 seq。 jquesry 函数内的 console.log 返回输入的序列,但 jQuery 函数之外的 console.log(我最终想在其中放置一些其他代码来分析序列)在 jquery 函数之前运行并返回一个空字符串。如何使使用 var seq 的代码仅在单击提交按钮后运行?谢谢!

var seq = "";

$("#subSeqType").on("click", function() {
  if ($("#proteinButton").is(":checked")) {
    $("#newTextArea").append("<textarea name = 'sequence' rows = '10' cols  = '80' placeholder = 'Enter Protein Sequence here' > < /textarea><br>");
  }
  if ($("#dnaButton").is(":checked")) {
    $("#newTextArea").append("<textarea name = 'sequence' rows = '10' cols  = '80' placeholder = 'Enter DNA Sequence here' > < /textarea><br>");
  }
  $("#subSeqType").remove();
  $("#newTextArea").append("<input id = 'subSeq' type='Submit'>");

  $("#subSeq").on("click", function() {
    seq = $("textarea:input[name=sequence]").val();
    console.log(seq);
  });
});

console.log("The sequence " + seq);

【问题讨论】:

  • 将你的代码包装在一个函数中,这是你可以声明一个全局变量的唯一方法;关于你的权利的大量答案:) 或者你可以将 seq 从这个函数传递给另一个函数,以将它从一个函数传递到另一个函数

标签: javascript jquery


【解决方案1】:

我将尝试解释这一点,但您应该阅读一些关于代码如何工作和运行的内容。

让我们声明代码语句的类型:

  1. 运行时代码

运行时代码是浏览器加载时运行的每一行代码

  1. 调用代码时运行

Run when call code 是事件发生后运行的代码。

统一这些概念:

创建侦听器时,创建该侦听器的规则是运行时代码。但是该监听器中的代码只会在被调用时运行。


我在下面做了一个小例子,你的问题不在于更改变量,而是在打印时。

打印机按钮将打印 var 值 cahnge calue 将更改该值一次

希望这会有所帮助:)

let myVar = "before";

console.log(myVar);

function myFun(){
  myVar = 'after';
}

function printer(){
  console.log(myVar);
}

console.log(myVar);
<button onclick="myFun()">change value</button>

<button onclick="printer()">print</button>

【讨论】:

  • 感谢您抽出宝贵时间提供如此详细的回复。我很感激。
【解决方案2】:

您似乎在另一个“点击”事件中使用了“点击”事件。 事件动作触发并执行其操作,而不等待内部或外部的另一个事件。

如果你想在事件的某些操作后获得变量值,你需要将它赋值给变量,并在事件被触发和操作时工作。

【讨论】:

    猜你喜欢
    • 2019-04-22
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2020-11-15
    • 2015-08-14
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多