2011-03-04 78 views
1

點擊我已在身後,我的代碼生成一個錨標記調用帶有的Javascript「這」不返回對象

href="javascript:blah('string',this);" 

我需要與對象交互的功能,但它似乎並沒有被返回正確。當我提醒它時,它返回「object Window」並調用this.id返回undefined(錨具有一個ID)

有什麼想法嗎?

謝謝

回答

3

而不是使用href作爲您的點擊事件使用內聯onClick處理程序。這會給你適當的「這個」對象。

<a href="javascript:void(0);" onclick="blah('string',this);"> 
+0

謝謝你解決了它:) – Chuck 2011-03-04 18:35:08

1

您使用什麼瀏覽器?示例href您試圖生成什麼或出現在源代碼中?

假設鏈接生成正確,這完全是一個JavaScript問題。

不同的瀏覽器有不同的事件處理程序的實現。考慮使用JQuery來掩蓋這些不一致之處,並給自己一個更容易的工作。

+0

感謝您的回覆。目前我在Firefox中,但它也需要在IE7中工作。這個例子是在html源代碼中出現的。另外我正在使用jquery,並試圖最初使用$(this),但它沒有工作iether – Chuck 2011-03-04 18:26:17

+0

使用JQuery,我會以另一種方式工作 - 當表單加載時,執行如下操作:'$。('Link Selector') .Click(function(){alert(this;)})' – Basic 2011-03-04 18:37:20

0
href="javascript:blah('string',this);" 

內部功能等等thiswindow對象

做到這一點

<a href="javascript:" id="myLink"> 


function handle() 
{ 
// this refers to your link 
} 
document.getElementById('myLink').onclick=handle; 
0

您還可以得到的一切工作,即使JavaScript已禁用。

<a href="#objectToInteractWithOrAnUriWithoutTheHash" onclick="return blah(this);">test</a> 


<script type="text/javascript"> 
    function blah(link) { 
     var elementIdOrUri = link.href; 

     //do some crazy stuff. 

     //false will prevent the browser from visiting the link 
     return false; 
    } 
</script> 

由於您使用在這種情況下A HREF,元素(如果它有一個錨),或者如果JavaScript是禁用的URI進行遊覽。否則您的函數將被調用。