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

时间:2014-04-10 09:30:22

标签: javascript jquery events

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

$("#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(){});

的事件处理程序

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

1 个答案:

答案 0 :(得分:1)

您可以通过在click callback函数之外声明这些数组来将数组放在两个作用域中。见小提琴: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);
  });
});