我想通过点击第一个元素来设置另一个元素的onclick属性,但我无法使其工作。 这是我的样本:
<a id="a1" onclick='$("#a2").attr("onclick", "window.prompt("Text:","foo")");'>test</a>
<a id="a2">test</a>
答案 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
事件处理程序:
$(document).ready(function()
{
$('#a1').click(function()
{
$("#a2").off("click");
$("#a2").click(function()
{
prompt('Text:','foo');
});
});
});
答案 2 :(得分:1)
使用jQuery
$(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;
答案 3 :(得分:1)
尝试更新的FIDDLE
$("#a1").click(function(){
$("#a2").attr({"onclick":"window.prompt(\"Text:\",\"foo\")"});
alert($("#a2").attr("onclick"));
});