如何将一个事件处理程序的数组对象作为javascript中的输入提供给另一个事件处理器

How to provide the array objects of one event handler to another event handler as input in javascript?

本文关键字:事件处理 javascript 输入 事件 处理器 另一个 数组 程序 一个 对象      更新时间:2023-09-26

这是点击事件。它有数组对象,我想把这些对象提供给另一个事件处理程序。这怎么可能?

$("#newQuiz_div #modalbody #next").click(function(){
    var qno=$("#question").val();
    var groupname=$("#groupname").val();
    var duration=$("#duration").val();
    var ht='';
    qno++;
    $("#question").val(qno);
    $("#nextQuestion").removeClass("hide");
    ht+=$("#nextQuestion ul").html();
    ht+=('<li>'+qno+'<i class=icon-edit></i><i class=icon-remove></i></li>');
    $("#nextQuestion ul").html(ht);
    //$("#text").val(" ");
    alert("helooo");
    alert(qno);
    var questionNo=new Array(10);
    var qType=new Array(10);
    var text=new Array(10);
    var Coption=new Array(10);
    var CoptionM=new Array(10);
    var qn=0;
    var q=0,qt=0;
    var cop=0,copm=0;
    if($("#qType").val()==2)
    {
        alert("hiii");
        questionNo[qn]=$("#question").val();
        qType[qt]=$("#qType").val();
        text[q]=$("#text1").val();
        CoptionM[copm]=$("#cOptionM").val();
        alert("Question type:"+questionNo[qn]);
        alert("Question type:"+qType[qt]);
        alert("Question :"+text[q]);
        alert("Answer :"+CoptionM[copm]);
        qn++;
        qt++;
        q++;
        copm++;
        $("#text1").val(" ");
    }
    else
    {
        alert("nooo");
        questionNo[qn]=$("#question").val();
        qType[qt]=$("#qType").val();
        text[q]=$("#text").val();
        Coption[cop]=$("#cOption").val();
        alert("Question type:"+questionNo[qn]);
        alert("Question type:"+qType[qt]);
        alert("Question :"+text[q]);
        alert("Answer :"+Coption[cop]);
        qn++;
        qt++;
        q++;
        cop++;
        $("#text").val(" ");
    }
});

我想添加另一个名为$("#btnSave").click(function(){}); 的事件处理程序

此事件如何访问在上述事件处理程序中创建的数组对象?

您可以通过在click callback函数之外声明数组来将数组放在这两个作用域中。请参阅Fiddle:http://jsfiddle.net/a9cm2/1/

$(function () {
   var questionNo=new Array(10);
  // bind first callback
  $("#clickme").click(function () {
      console.log('first callback', questionNo);
      questionNo[0] = 'foo';
  });
  $("#clickme").click(function () {
     console.log('second callback', questionNo);
  });
});