我需要保持元素引用传递

时间:2017-09-12 17:39:24

标签: javascript dom

当用户点击import os, sys path = "/tmp/my.fifo" try: fifo = open(path, "r") except Exception as e: print (e) sys.exit() while True: r = fifo.read(1) if len(r) != 1: print ("Sender Terminated") break print ("Received:", r) fifo.close() 标记时,它会调用以下函数:

<a>

此函数为需要引用第一个按钮的模态生成HTML。

<a href="#" onclick="func1(this)">;

单击模态中的链接时,func1(elem) { html='<div class="modaldiv">' + '<a href="#" onclick="func2(e.srcElement)">'+ '</div>'; } 应将文本保存到第一个链接内的数据属性中,但这不起作用,返回:

  

func2()

1 个答案:

答案 0 :(得分:1)

首先,请勿使用内联HTML事件处理属性(onclickonmouseover等), here's why

但是,你的实际问题是你没有正确宣布你的功能。

这:func1(elem)

需要这样:function func1(elem)

接下来,您<a>个元素必须包含一些内容供某人查看和点击,然后必须关闭它们,这是您没有的。

function func1(elem) {
  html='<div class="modaldiv">' + '<a href="#" onclick="func2(e.srcElement)">click me too</a>'+ '</div>';
  document.body.innerHTML += html;
}
<a href="#" onclick="func1(this)">click me</a>

如果你重复使用现代标准的答案,那么正确的现代方法是:

// Get references to DOM elements
var a1 = document.getElementById("firstAnchor");
a1.addEventListener("click", func1);

// Callback for first link:
function func1(e) {
  // Store original source element
  var src = e.srcElement;

  // Formally create new elements and configure them
  var d = document.createElement("div");
  d.classList.add("modaldiv");
  
  var a = document.createElement("a");
  a.href = "#";
  a.textContent = "Click me too!";
  // By hooking up to a wrapper function, we can have that function
  // pass arguments to the actual callback function:
  a.addEventListener("click", function(){
    func2(src);
  });
  
  // Add new elements to the document
  d.appendChild(a);
  document.body.appendChild(d);

}

function func2(firstSrc){
 console.log("func2 invoked and e.srcElement from first link is: ", firstSrc);
}
<a href="#" id="firstAnchor">click me</a>