jQuery设置onclick另一个元素的attr

时间:2014-09-30 06:53:09

标签: jquery onclick

我想通过点击第一个元素来设置另一个元素的onclick属性,但我无法使其工作。 这是我的样本:

http://jsfiddle.net/bssqgprg/

<a id="a1" onclick='$("#a2").attr("onclick", "window.prompt("Text:","foo")");'>test</a>
<a id="a2">test</a>

4 个答案:

答案 0 :(得分:1)

你必须逃避双引号

<a id="a1" onclick='$("#a2").attr("onclick", "window.prompt(\"Text:\",\"foo\")");'>test</a>

<强>解释

attr("onclick", "window.prompt("// your code is like this
$("#a2").attr("onclick", "window.prompt("); // so your code get interpret like this.

表示您在循环括号之前关闭属性,之后的代码会导致语法错误。

答案 1 :(得分:1)

'$("#a2").attr("onclick", "window.prompt("Text:","foo")");'无效字符串"window之前干扰"之前Text

您可以以正确的jQuery方式使用click事件处理程序:

Fiddle

$(document).ready(function()
{
    $('#a1').click(function()
    {
        $("#a2").off("click");
        $("#a2").click(function()
        {
            prompt('Text:','foo');
        });
    });
});

答案 2 :(得分:1)

使用jQuery

&#13;
&#13;
$(function() {
  //use one since you want to bind it only once
  $('#a1').one('click', function() {
    $('#a2').click(function() {
      window.prompt('Text:', 'foo');
    })
  })
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a id="a1">test</a>
<a id="a2">test</a>
&#13;
&#13;
&#13;

答案 3 :(得分:1)

尝试更新的FIDDLE

   $("#a1").click(function(){
       $("#a2").attr({"onclick":"window.prompt(\"Text:\",\"foo\")"});
       alert($("#a2").attr("onclick"));
   });