<a id="cp-login" href="javascript:;" rel="#dialog" show="#login">登入</a>
$("a[id^=cp-][rel]").overlay(
{top: 120,mask: {color: '#67B300',loadSpeed: 200,opacity: 0.2},
closeOnClick: false,
onBeforeLoad: function() { alert($(this).attr("id") )}
});
alert($(this).attr("id")
未定义
发布于 2010-07-30 11:18:47
简短的故事:如果你试图访问触发覆盖的元素,请使用下面的代码:
this.getTrigger().attr('id')
长话短说:在DOM事件处理程序中,"this“是指触发事件的元素。但是,onBeforeLoad不是DOM事件处理程序。它只是一个jQuery工具将在获取覆盖之前执行的函数。Javascript允许开发人员在执行函数时指定"this“的含义。因此,jQuery工具开发人员要么让它指向相关的东西,要么不去管它(在这种情况下,它将是全局“窗口”对象的别名)。无论采用哪种方法,文档(http://flowplayer.org/tools/demos/overlay/external.html)都描述了如何访问触发器和覆盖元素。
根据经验,不要在Javascript中使用"this“,除非您确切知道它在当前上下文中的含义,因为它与其他语言中的"this”不同。
https://stackoverflow.com/questions/3368420
复制相似问题