jQuery函数运行后如何使用变量

时间:2018-07-09 02:43:31

标签: javascript jquery

我知道以前曾问过类似的问题,但仍然不了解我的代码正在发生什么。在用户将其序列输入到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);

2 个答案:

答案 0 :(得分:1)

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

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

  1. 运行时代码

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

  1. 在调用代码时运行

在调用代码是事件发生后将要运行的代码时运行。

  

统一这些概念:

创建侦听器时,创建该侦听器的规则是运行时代码。但是,该侦听器中的代码仅在需要时运行。


我举了一个小例子,您的问题不是更改变量,而是打印时。

打印机按钮将打印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>

答案 1 :(得分:0)

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

如果要在事件的某些操作后获取变量值,则需要将其分配给变量,并在事件触发并运行时起作用。