首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在点击困难时执行javascript函数

在点击困难时执行javascript函数
EN

Stack Overflow用户
提问于 2016-05-04 06:40:38
回答 3查看 57关注 0票数 1

我正在尝试使用一个javascript函数来创建单独的按钮,然后我可以单击这些按钮来执行不同的js函数。我为js函数创建的每个按钮都有一个不同的参数。

此版本的函数有效。它创建了一个带有参数"addr2“的onclick valChange函数的新按钮。我希望"addr2“是一个可以根据需要更改的字符串,就像我在第二个版本中所做的那样。

html就是函数要放入新div的div。两个版本都将在testbox div中创建一个新按钮。版本1的按钮有效,并将在单击时执行警报valchange功能。版本2的按钮不执行该功能。我如何才能让版本2工作,为什么它目前不能工作?

代码语言:javascript
运行
复制
<div id="testbox">

</div>

版本1,有效

代码语言:javascript
运行
复制
function dostuff()
{
    var newDiv = document.createElement('div');
    var html = '<input type="button"onclick="valChange(`box1`)">;
    newDiv.innerHTML = html;
    $('#testbox').append(html);
}

版本2,不起作用

代码语言:javascript
运行
复制
function dostuff()
{
    var newDiv = document.createElement('div');
    var i = "box1";
    var html = '<input type="button" onclick="valChange(i)">';
    newDiv.innerHTML = html;
    $('#testbox').append(html);
}

如果按钮实际工作,则显示警报。

代码语言:javascript
运行
复制
function valChange (divID)
{
    alert("it worked" + divID);
} 
EN

回答 3

Stack Overflow用户

发布于 2016-05-04 06:52:19

你这里漏掉了一些引号!

当前单击时,JS需要一个变量box1而不是字符串(这正是您想要的)

代码语言:javascript
运行
复制
function dostuff() {
  var newDiv = document.createElement('div');
  var i = "box1";
  var html = '<input type="button" onclick="valChange(\''+ i +'\')">';
  newDiv.innerHTML = html;
  $('#testbox').append(html);
}

function valChange (divID) {
  alert("it worked" + divID);
} 

dostuff();
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="testbox"></div>

在jQuery中的另一种方法是:

代码语言:javascript
运行
复制
function dostuff() {
  
  $inp = $("<input/>", {
    type : "button",
    value : "CLICK ME",
    click : valChange
  });
  
  $("<div/>", {
    append : $inp,
    appendTo : "#testbox"
  });

}

function valChange() {
  alert("My value is: " + this.value);
} 

dostuff();
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="testbox"></div>

票数 1
EN

Stack Overflow用户

发布于 2016-05-04 06:52:07

var i未正确使用。

代码语言:javascript
运行
复制
 function dostuff()
{
    var newDiv = document.createElement('div');
    var i = "box1";
    var html = '<input type="button" onclick="valChange(\''+i+'\')">';
    newDiv.innerHTML = html;
    $('#testbox').append(html);
}
票数 0
EN

Stack Overflow用户

发布于 2016-05-04 06:52:25

在您的第二个版本中,它将i视为一个字符串。这应该是可行的:

代码语言:javascript
运行
复制
function dostuff()
    {
        var newDiv = document.createElement('div');
        var i = "box1";
        var html = '<input type="button" onclick="valChange(\'' + i + '\')">';
        newDiv.innerHTML = html;
        $('#testbox').append(html);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37015592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档