2011-06-15 113 views
0

我在一些html中有一个链接,它调用了我正在写的一个javascript函数。呼叫必须是内联,使代码如下:识别调用者

<a href='#' onclick='quipManager.getQuip(1, $(this))'>Test</a> 

在getQuip函数I使用该基准来修改其通过)。家长的装置( 例如包裹链路在div

getQuip: function (id, currentQuip) { 
     alert(currentQuip.parents('.qtip').html()); 
    } 

我需要保持通话联机,但我想知道的是,如果我可以这样使用它:

<a href='#' onclick='quipManager.getQuip(1)'>Test</a> 

,仍然有getQuip知道哪个环节把它称为这样的以下仍然有效。

getQuip: function (id) { 
     var currentQuip = id.caller ??? 
     alert(currentQuip.parents('.qtip').html()); 
    } 
+1

为什么*必须*电话是内联? – lonesomeday 2011-06-15 15:50:09

+0

为什么你需要保持这种联代码?哦哦 – genesis 2011-06-15 15:51:56

+0

因为链接是由用户创建的文本文档中的占位符实时构建的,我试图简化它,这是一个非常丑陋的DIY CMS系统,但它最后一刻的大范围蠕变!细化它,如果它长时间挂起的话 – BonyT 2011-06-15 15:55:34

回答

0

我猜,答案是你不能:(

1

你在寻找的东西,如:

$('#element').click(function() { 
    example.apply(this); 
}); 

var example = function() { 
    $(this).text("it worked"); 
} 

.apply将允许你改变的例子函数中的this默认分配,所以你可以将其更改为任何元素,并处理它相同。

http://jsfiddle.net/mwrX2/

+0

他告诉他,他想要它在线 – genesis 2011-06-15 15:53:16

+1

所以然后把它内联... onclick ='example.apply(this)'... – Robert 2011-06-15 15:55:17

+0

但问题是 - 为什么? (哎呀,他删除了他的评论,忘记了这个评论) – genesis 2011-06-15 15:57:30