我有一个项目清单
<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());
}
});
});