我知道我不应该在jQuery上使用“onclick”。无论如何我使用它的原因是存在预先存在的代码,其中按钮具有onclick
属性以打开弹出窗口。我正在jquery对话框中创建一个新按钮,需要打开同一个目标。复制原始按钮的onclick属性,而不是试图从中获取URL并使用更好的处理程序,这更容易(我认为?)。
$insert = $(data).find('.button.compare:first'); // find the button in $(data). This already works.
$("#dialog").html('<button type="button" title="View List" class="button compare" onclick="' + $insert.clone().prop('onclick') + '")><span>View List</span></button>'); // get the onclick property - seems to work but button does nothing
$ insert是按钮的副本。我实际上稍后在页面中插入该副本,它在那里工作正常。但是我在jQuery-ui对话框中创建的新按钮不起作用。它没有打开一个新窗口。
编辑: 我只是注意到原始onclick属性和复制的属性之间存在差异。原文看起来像:
`onclick="popwin(....)"
副本添加了一些东西:
onclick="function onclick(event) { popwin(...)"
为什么会这样?
答案 0 :(得分:0)
我设法通过改变
来解决这个问题$insert.clone().prop('onclick')
到
$insert.clone().attr('onclick')
虽然我不确定为什么会有这种差异。