javascript - 将数组传递给 javascript onclick 函数

标签 javascript jquery

我有一个数组想要传递给 JavaScript onclick 函数。

                var event_data = new Array();
                event_data.push(event_id);
                event_data.push(event_title);
                event_data.push(channel_id);
                event_data.push(channel_name);
                event_data.push(channel_onclick);
                event_data.push(event_site);
                event_data.push(event_url);
                event_data.push(event_onclick);
                event_data.push(start_date);
                event_data.push(start_time);
                event_data.push(end_date);
                event_data.push(end_time);
                event_data.push(event_notes);

我在按钮的 onclick 事件中发送该数组。

var span_string = '<span id=\"dt'+event_id+'\">'+print_span+'<br/><button href="#" onclick="edit_event('+event_data+');" style="width: 49px;">Edit</button><button href="#" onclick="delete_event();" style="width: 49px;">Delete</button></span>';
var event_id_string = 'mn'+event_id;
$('#'+event_id_string).append(span_string);

该代码根本没有调用 onclick 函数。是否有其他方法可以使用 event_data 数组调用该函数?

function edit_event (event_data) {
/* function edit_event () { */
    alert ('edit event'); 
    var event_id = event_data[0];
    var event_title = event_data[1];
    var channel_id = event_data[2];
    var channel_name = event_data[3];
    var channel_onclick = event_data[4];
    var event_site = event_data[5];
    var event_url = event_data[6];
    var event_onclick = event_data[7];
    var start_date = event_data[8];
    var start_time = event_data[9];
    var end_date = event_data[10];
    var end_time = event_data[11];
    var event_notes = event_data[12];

    var alert_string = 'event id '+event_id+'<br/>'+
    'event title '+event_title+'<br/>'+
    'channel id '+channel_id+'<br/>'+
    'channel name '+channel_name+'<br/>'+
    'channel onclick '+channel_onclick+'<br/>'+
    'event site '+event_site+'<br/>'+
    'event url '+event_url+'<br/>'+
    'event onclick '+event_onclick+'<br/>'+
    'start date '+start_date+'<br/>'+
    'start time '+start_time+'<br/>'+
    'end date '+end_date+'<br/>'+
    'end time '+end_time+'<br/>'+
    'notes '+event_notes+'<br/>';

    alert (alert_string);
}

最佳答案

我最终采用了这种方法。

使事件数据成为全局变量。

var events_data;

将 event_id 传递给 edit_event() 函数。

var span_string = '<span id=\"dt'+event_id+'\">'+print_span+'<br/><button href="#" onclick="edit_event(\''+event_id+'\');" style="width: 49px;">Edit</button><button href="#" onclick="delete_event();" style="width: 49px;">Delete</button></span>';

在 edit_event 函数中获取所选 event_id 的事件数据。

    function edit_event (event_id) {
        for ( var i=0; i<events_data.event_id.length; i++ ) { 
            var site = "";
            var onclick =  "";
            if ( event_id == events_data.event_id[i]["0"] ) {
                  .
                  .
                  .
            }
         }
     }

关于javascript - 将数组传递给 javascript onclick 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624620/

相关文章:

javascript - 如何将动态对象添加到javascript对象属性

javascript - 使用 JSON 的跨域请求

javascript - .then() 在循环中不多次执行内部函数

javascript - C# 在不知道 ID 或任何强标识符的情况下单击表单中的按钮?

javascript - 如何在 Javascript 中使用另一个数组来过滤一个数组?

jquery - jQuery Mobile 中的多个堆叠页脚(将 div 放在导航栏上方的底部)

jquery - Material 设计波浪效果不适用于动态创建的按钮

javascript - 将带有 Redux 组件的 React 附加到 iframe

javascript - 获取 contentEditable 中另一个选择范围内的选择范围值

javascript - 如何删除 html 表格中连续单元格的类