【问题标题】:How to effectively use onClick and EJS如何有效地使用 onClick 和 EJS
【发布时间】:2017-03-22 12:46:01
【问题描述】:

我正在尝试基于 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>

这是模态窗口

<% 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>
<%}%>
这是我的 js 文件

router.get(name, function(req, res) {
  res.render('shows', {
    number: false
  });
});

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

我的尝试
一种。将显示功能放在服务器端
湾。将显示功能放在客户端
C。我在这里看到的许多不同的 onclick 使用方式
d。在客户端声明数字变量&lt;% var number = false%&gt;

没有什么对我有用。请问大家有什么意见吗

【问题讨论】:

    标签: javascript node.js express onclick ejs


    【解决方案1】:

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

    function show(){
    $( "#yourmodal" ).load( "/showmodalroute" );
    }
    

    调用onClick中的函数:

    <a onClick = "show()">
    

    特快路线:

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

    如果你使用 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();
    } 
    

    html:

    <a onClick = "show()">
    

    【讨论】:

    • 使用 jquery 是完成此任务的唯一方法吗?我问是因为我不知道如何使用 jquery,这意味着我必须学习。
    • 我最终使用了 jquery。你是对的 jquery 让事情变得更容易