【问题标题】:Add doubleclick handler on table cell after response响应后在表格单元格上添加双击处理程序
【发布时间】:2016-11-14 10:25:29
【问题描述】:

我想在表格从 servlet“下载”并由 javascript“插入”之后向表格单元格添加双击事件处理程序。 我有一个 javascript 循环,它对映射数据 ini 表的 xml 响应进行迭代。表示一个cell可以

<td class='red' ></td>

我想在那个单元格上添加一个功能,我尝试了几种解决方案,但没有一个可行。一个是:

$(".red").on("dblclick",myfunction);

帮助?

更新: 表构造函数收到响应

function handleResponse(responseXML) {
    var i;
    var x=responseXML.getElementsByTagName("row");
    var out="<table><tr><th >Description</th><th >State</th><th>Note</th></tr>";
    for(i=0;i<x.length;i++){
        out+="<tr>";
    var Description = x[i].getElementsByTagName("Description")[0].childNodes[0].nodeValue;
    var State = x[i].getElementsByTagName("State")[0].childNodes[0].nodeValue;
    var note =  x[i].getElementsByTagName("Note")[0].childNodes[0];
    var note_text=" ";
    if (!(typeof note === "undefined") && !(note=='null')) {
        note_text=note.nodeValue;
    }
    out += "<td>"+Description+ "</td>";
    if(State==0)
        out+="<td class='white' ></td>";
    else if(State==1)
        out+="<td class='red' ></td>";
    else if(State==2)
        out+="<td class='yellow' ></td>";
    else if(State==3)
        out+="<td class='green' ></td>";

    out+="<td>" + note_text + "</td></tr>";
    }
    var output = document.getElementById("mytable");
    out+="</table>";
    $().on("click",".red",update());  //here is the point
    output.innerHTML=out;
}

【问题讨论】:

  • $(".red ,.rosso").on("click",myfunction) 如果你需要这样

标签: javascript html css ajax eventhandler


【解决方案1】:

更新:

根据你的 cmets 你可以试试这个:

当你打印td 时,稍微改变一下模板:

out+="<td class='red' ondblclick='openModal()'></td>";

然后在你的 js 文件中添加类似这样的内容。

$(document).ready(function() {
    function openModal() {
      alert( "Double clicked." );
      // Or call your other function here...
    };
});

您也可以通过多种方式进行操作,请在此处查看:http://www.w3schools.com/jsref/event_ondblclick.asp

【讨论】:

  • 不,我很抱歉,我不清楚。场景是这样的: 1)使用组合框加载 html 页面 2)选择一个选项并执行对 servlet 的请求 3)接收 xml 数据并创建一个表以显示在 div 点 3 上,我想添加一个事件监听器双击一个单元格,它会显示一个模态 div。希望我更清楚
  • 那么.rosso是你要双击的元素吗?
  • rosso 是红色的(意大利语)。对不起,我的代码格式很糟糕,我已经完成了复制/粘贴错误。所以,我希望双击一个“红色”类的单元格,显示一个模态 div
  • 请提供一个工作小提琴,我会尽力为您服务。
  • 唯一能做某事的代码是:' $().on("click",".red",myfunction()); ' 但它只在表构造周期调用 myfuntion
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-22
  • 2011-06-16
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多