如何通过多种方式激活功能?

时间:2019-05-17 20:57:20

标签: javascript html

我现在有一个仅在window.onload()处调用的函数,但是我也希望在单击按钮时调用该函数,而不复制相同的代码。

window.onload = function testConnectie(){

$('#fresh').one('click', function(){

我需要在testConnectie处调用函数window.onload(),然后单击带有新鲜感的按钮。

3 个答案:

答案 0 :(得分:5)

您可以创建一个单独的函数,并在两种情况下都调用该函数:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="fresh">Fresh</button>
DocumentReference dref=db.collection("User").document(di);
dref.update("Space",sp);

答案 1 :(得分:1)

一种实现方法是将函数分配给变量,例如:

async loadImage (file) => {
  return new Promise((resolve, reject) => {

    const reader = new FileReader()
    reader.onerrror = reject();
    // ..
  })
}

答案 2 :(得分:0)

  1. 创建回调函数并传递事件对象(即使您未显式使用它)。
  2. 将Window对象注册到旧式活动属性.onload

  3. 接下来,使用jQuery .on()方法委派'click'事件(.one()方法只允许单击一次按钮……不确定为什么它在OP中)。

  4. 注意:两次调用testConnect() 时,其名称的末尾都带有括号。原因是触发事件决定了触发回调的时间,否则,如果括号出现了,浏览器读取该函数后就会触发该函数。

  5. 回调testConnect()会将按钮的文本更改为事件类型。因此它将是“加载”,单击时将是“单击”。

.test {
  font: 700 32px/1.2 Arial;
  cursor: pointer;
  text-decoration: none;
  background: rgba(51, 50, 30, 0.2);
  border: 3px ridge #333;
  border-radius: 12px;
  padding: 2px 5px;
  color: #998;
}
<a href='#/' class='test'>TEST</a>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
  window.onload = testConnect;

  $('.test').on('click', testConnect);

  function testConnect(event) {
    var evt = event.type;
    console.log(evt);
    $('.test').text(evt);
  }
</script>