触发jQuery链接点击时的'undefined'功能

时间:2012-06-06 23:28:48

标签: javascript jquery

出于某种原因,这适用于FF 11,Chrome,甚至在IE中,但不适用于FF 3.6或Safari 5。

基本上我触发点击链接:

var $currentItem = $('#' + currentId);
var modalSeriesList = $('.js-modal-series');
var index = modalSeriesList.index($currentItem);
var $nextItem = modalSeriesList[index + 1];

var nextClick = function() {
    $(document).off('keydown.general');
    $nextItem.click();
}

$(document).off('keydown.general');

if ($nextItem) {
    $nextButton.click(nextClick);
}​

但是当我点击FF 3.6或Safari 5中的链接时,我收到以下错误:

TypeError: 'undefined' is not a function (evaluating '$nextItem.click()')

使用以下方法是否有任何我不知道的特殊“问题”?

3 个答案:

答案 0 :(得分:4)

尝试.eq(),因此$nextItemjQuery集合:

var $nextItem = modalSeriesList.eq(index + 1);

// ...

$nextItem.click()

使用[...]检索没有.click()方法的DOM对象。

答案 1 :(得分:1)

你可以尝试

if( typeof $nextItem == 'undefined' ){
    $nextButton.trigger('click');
}

而不是

if ($nextItem) {
    $nextButton.click(nextClick);
}​

答案 2 :(得分:0)

如果你将if语句的条件转换为

if(typeof $nextItem == 'undefined' )

它有效。正如波尔科所说,可能$ nextItem不存在....