html端拼html的时候带监听事件的坑

先上一段后端程序员写的前端代码demo

    function test(a){
        console.log(a)
    }
    var s = "str", str="wtf";
    $("body").append(‘<div class="test" onclick=test(‘+s+‘)>test</div>‘);

猜猜看点击test这个标签的时候会打印出"str"还是"wtf"?

居然是"wtf",wtf!

这段代码在页面里写的html是这样的

<div class="test" onclick="test(str)">test</div>

输出出来的str完全就是一个全局变量嘛,说好的字符串呢。

这种写法耦合不说,遇到这种字符串转变量的就坑爹了。

解决方法,加引号输出

 $("body").append(‘<div class="test" onclick=test("‘+s+‘")>test</div>‘);

这样输出出来的html就是

<div class="test" onclick="test(&quot;str&quot;)">test</div>

但是还是不建议这么写。

时间: 2024-08-21 22:44:01

html端拼html的时候带监听事件的坑的相关文章

移动端用js与jquery实时监听输入框值的改动

背景: 在一次移动端H5开发中,需要监听输入框值的实时变动. onchange事件肯定抛弃,因为只能失去焦点才触发. 而keyPress在Android可以触发,iOS不可以. 又不想用Android和iOS都可以触发的keyDown和keyUp. 于是,百度出了新东西:oninput![需要配合propertychange,兼容 IE9 以下版本] 用法: JS: if(isIE) { document.getElementById("input").onpropertychange

Zookeeper之Watcher监听事件丢失分析

在上篇博客中,介绍了zookeeper客户Curator对监听事件的封装及应用--<Zookeeper开源客户端Curator之事件监听详解>在讲解部分代码实例的运行结果时我们已经注意到,并不是所有的监听事件都会发送到客户端.比如连续更改一个节点的内容.创建节点再马上删除节点.本篇博客就讨论一下zookeeper监听事件丢失的原因及使用时的注意事项. 案例 package com.secbro.learn.curator; import org.apache.curator.RetryPoli

JS,JQ及时监听input值的变化,MUI的input搜索框里的清除按钮的点击监听事件

JS: document.getElementById("input对象的ID").addEventListener('input',function(){ console.log("aaaaa"); }); JQ: $("input对象").bind("input  propertychange",function(){ console.log("aaaaa"); }): MUI 清除按钮的点击的监听:

JAVAscript学习笔记 js句柄监听事件 第四节 (原创) 参考js使用表

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>句柄添加监听事件</title> <script type="text/javascript" src="tzy.js"></script> </head> <body>

浅谈postMessage多页面监听事件

最近做了一个Echarts和Highcharts多图多页面连动的效果,就用到postMessage 如下介绍: 最开始在最外围的页面也就是所有页面的父级页面添加postMessage监听事件以便监听下面子级页面的动态,代码: window.parent.addEventListener('message',function(e){ if(e.source != window.parent) return; var names = localStorage.getItem("toName"

ios ---键盘的监听事件

//在view将要出现的时候重载viewWillAppear方法添加通知 监听事件 keyboardWillShow:  keyboardWillHide: - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:

js html 交互监听事件学习

事件处理程序(handler): HTML事件处理程序: <input type="button" value="Click Here" onclick="showMessage();" /> <script type="text/javascript"> function showMessage() { alert('Clicked!'); } JavaScript指定事件处理程序: <inpu

Android中Button的五种监听事件

简单聊一下Android中Button的五种监听事件: 1.在布局文件中为button添加onClick属性,Activity实现其方法2.匿名内部类作为事件监听器类3.内部类作为监听器4.Activity本身作为事件监听器,实现onClickListener5.外部类作为监听器 ButtonListenerActivity.class public class ButtonListenerActivity extends AppCompatActivity implements View.On

Android——监听事件总结1

各种监听事件 1.按钮 Button(1)点击监听 btn_1.setOnClickListener(new View.OnClickListener() { (2)长按监听 btn_1.setOnLongClickListener(new View.OnLongClickListener() { 2.单选框 RadioGroup radio_gp.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 3.复选