如何有效使用onClick和EJS

Mic*_*cha 5 javascript onclick ejs node.js express

我正在尝试显示基于 onClick 事件的模式窗口

这就是我执行 onClick 的地方

<div class = "post-content">
  <a onClick = "<%"show()"%>"> <h6><center> <%= imageData[0].title%></center> </h6> </a>
  <img src = "<%= imageData[o].associated_images[0].url%>">
  <center> <%= imageData[0].short_description%> </center>
</div>
Run Code Online (Sandbox Code Playgroud)

这是模态窗口

<% if(number){%>
  <div class = "single-preview">
    <h6><center> <%= imageData[0].title%></center> </h6> 
      <center><img src="<%=imageData[0].associated_images[0].url%>"style="width:720px height:405px;"> </center>
      <center> <%= imageData[0].long_description%> </center>
      <button class = "close-button"> &#215; </button>
  </div>
<%}%>
Run Code Online (Sandbox Code Playgroud)
这是我的js文件

router.get(name, function(req, res) {
  res.render('shows', {
    number: false
  });
});
Run Code Online (Sandbox Code Playgroud)

基本上我试图numbershow()调用时更改变量的值。

我已经尝试
过了。将 show 函数放在服务器端
b. 将show功能放在客户端
c. 我在这里看到的使用 onclick 的许多不同方法
d.在客户端声明数字变量<% var number = false%>

没有什么对我有用。请问有人有什么想法吗

小智 3

在客户端编写一个显示函数来调用快速路由:

function show(){
$( "#yourmodal" ).load( "/showmodalroute" );
}
Run Code Online (Sandbox Code Playgroud)

调用该函数onClick

<a onClick = "show()">
Run Code Online (Sandbox Code Playgroud)

快车路线:

router.get("/showmodalroute", function(req, res) {
  res.render('shows', {
    number: false
  });
});
Run Code Online (Sandbox Code Playgroud)

如果你使用 JQuery 事情会更容易。(JQuery 是一个 javascript 库。)在普通的 javascipt 中,您必须进行调用http

function show()
{
    var xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById('yourmodal').innerHTML=xmlhttp.responseText;
        }
    }
 xmlhttp.open("GET","/showmodalroute",true);
 xmlhttp.send();
} 
Run Code Online (Sandbox Code Playgroud)

html:

<a onClick = "show()">
Run Code Online (Sandbox Code Playgroud)