我有一个项目清单
<ul class="list"> <li> <a href="#Course1" class="launch" onclick="alert('event 1')">event 1</a> </li> <li class="alt"> <a href="#Course2" class="launch" onclick="alert('event 2')">event 2</a> </li> <li> <a href="#Course3" class="launch" onclick="alert('event 3')">event 3</a> </li> <li class="alt"> <a href="#Course4" class="launch" onclick="alert('event 4')">event 4</a> </li> </ul>
我希望能够将链接的onclick分配给li的onclick
到目前为止我的尝试是一次点击(因为我将脚本分配给onclick而不是执行脚本)
$('.list li').click(function() { var launch = $('a.launch',this); if (launch.size() > 0) { this.onclick = launch.attr('onclick'); } });
提前致谢
蒂姆
解决方法
在
@Thomas Stock’s
answer上构建以下代码可防止在单击链接而不是li时双重执行. (从
here jQuery网站获得)
$(document).ready(function() { $('ul.list li').click(function(e) { var $target = $(e.target); if(!$target.is("li")) //magic happens here!! { return; } var launch = $('a.launch',this); if (launch.size() > 0) { eval(launch[0].onclick()); } }); });