HTML启用div onclick

时间:2016-05-31 20:16:32

标签: javascript jquery html tags

我有一个看起来像这样的div:

<div id="scriptDiv">
  <script src="URL" id="someId" my-token=""></script>
</div>

我无法在scriptDiv内运行脚本标记,直到我有一个令牌,并且当用户按下按钮时会给出该令牌。在我知道用户想要选择此选项之前,我无法呈现该令牌。

所以我有一个按钮,在按下时呈现一些JS代码,并使用以下代码将令牌添加到div:

$('#someId').attr('my-token', token);

所以问题是当HTML页面呈现时我会调用scriptDiv并且出现错误。我只希望在用户按下我的按钮时调用scriptDiv

那么只能在按下按钮时调用scriptDiv而不是在呈现页面时调用它吗?

4 个答案:

答案 0 :(得分:1)

如果您不希望执行脚本,请在准备好之前将其放在html或dom中

<div id="scriptDiv"></div>

然后在你的按钮事件中创建脚本元素,将其设置为src到网址,然后将其附加到文档

$("#button").click(function(){
   var s = document.createElement("script");
   s.src = "http://www.example.com/jsfile.js";
   s.setAttribute("my-token","whatever your token is"); 
   $("#scriptDiv").append(s);
});

答案 1 :(得分:0)

您应该在按钮点击事件中设置脚本标记的令牌属性,如下所示。

$('#buttonId').click(function (){
 $('#someId').attr('my-token', token);
});

答案 2 :(得分:0)

我认为你以错误的方式解决这个问题。查看在您希望代码运行时进行回调并将其与事件绑定到按钮。您可以控制在JavaScript中完成的操作。例如,抱歉我在这里使用jQuery,

$('#myButton').on('click', function(){
 //your code here
});

这样它只会在您点击按钮时运行。

答案 3 :(得分:0)

您可以将想要运行的j放在一个函数中,例如

function scriptDiv(){
    // Your js here
}

当您希望脚本运行时(设置令牌时),只需使用调用函数的内容,如:

<button onclick="scriptDiv()"></button>

如果设置了令牌,您也可以每秒检查一次。

setInterval(function(){if (tokenIsSet) {scriptDiv}},500);