2010-12-05 48 views
1

我有一個頁面下面的HTML:jQuery的點擊目的地選擇

<a href="javascript:void(0)" class="move-next"><img src="/Content/images/small-next-arrow.png" height="16" width="16" alt="Next status arrow" title="Progress to next status"/></a></div> 

,我有以下的javascript,試圖處理click事件:

function InitProgressionSelectors() { 
$(".move-next").click(function() { 
    moveNext(this); 
}); 

$(".move-previous").click(function() { 
    movePrevious(this); 
}); 
} 

function moveNext(target) { 
    var sourceContainer = target.parent("td"); 
    var targetContainer = sourceContainer.next("td"); 
} 

我顯然失去了一些東西,因爲moveNext函數中的「target」正在返回一個HTMLAnchorElement,但是當我試圖包裝它時,或以某種方式作爲jQuery對象訪問它時,我可以嘗試獲取它的父容器的句柄,我得到錯誤。

對$(target)的引用返回null。我如何獲得作爲jQuery對象的引用,以便我可以在該上下文中使用它?我錯過了什麼?

謝謝。

+0

請問您是否可以在[JS Fiddle](http://jsfiddle.net/)或[JS Bin](http://jsbin.com/)上發佈重現您的問題的演示? – 2010-12-05 19:39:36

+1

idon't記住父母和下一個是否屬於jquery api或常規javascript,現在你只是通過這個和使用this.parent,如果你想使用jQuery,你需要使用$(this).parent /// – kobe 2010-12-05 19:43:25

回答

1

正如我在下面的評論中提到的,使用$(target)不起作用。但是,從上述原始問題的評論中可以看出,解決方案實際上是通過$(this)作爲參數。一旦我這樣做,target.parent解決了預期的節點,並工作。


鮑勃可以嘗試使用美金

$(目標)

var sourceContainer = $(target).parent("td"); 
3

你需要傳遞jQuery對象

$(".move-previous").click(function() { 
    movePrevious($(this)); 
}); 
0

另一種方法是通過功能通過參考:

$(".move-next").click(moveNext); 

然後可以使用選擇按預期:

function moveNext() { 
    var sourceContainer = $(this).parent("td"); 
    var targetContainer = sourceContainer.next("td"); 
} 

傳遞功能,單擊處理程序時,請注意缺少括號。