这个javascript可以不引人注目吗?

时间:2012-02-21 22:18:36

标签: javascript jquery

我有这个内联javascript,有什么办法可以让它不引人注目吗?感谢。

<a href="/uploads/status/image/52/Zombatar_1.jpg" onclick="displayLightBox(this); return false;">
    <img alt="Thumb_zombatar_1" src="/uploads/status/image/52/thumb_Zombatar_1.jpg">
</a>

2 个答案:

答案 0 :(得分:3)

将HTML标记和JavaScript代码分开是一个好主意。我建议在渲染后将onClick行为应用于链接。在我的示例中,我使用jQuery将事件处理函数绑定到链接:

$('#element_id').click(function() {
    displayLightBox(this);
    return false;
});

如果您正在编写大型Web应用程序,那么将业务逻辑和表示分开对于编写可维护和可支持的代码至关重要。

您的jQuery选择器将根据它在页面上的放置方式而有所不同。如果您可以提供创建该链接的HTML上下文,我可以提供更适合的jQuery选择器。

答案 1 :(得分:3)

当你用jQuery标记问题时,我会给你一个jQuery答案。您的a元素当前没有其href属性以外的识别特征。最简单的方法是给它id,然后使用id选择器。关键是找到一些特征,通过它你可以识别出你想要定位的元素。

如果idclass不是选项,请使用属性选择器:

$("a[href='/uploads/status/image/52/Zombatar_1.jpg']").click(function() {
    displayLightBox(this);
    return false;
});

请注意,我已从内联事件处理程序中删除了随机false;;,因为据我所知,它没有任何用处。

更新(见评论)

由于你有多个元素来绑定事件处理程序,你最好的选择可能是一个普通的类。然后,您可以使用类选择器:

$(".myLink").click(function() {
    displayLightBox(this);
    return false;
});

click事件处理程序绑定到匹配集中的所有元素。执行时,this引用单击的元素。