1

出于某种原因,这适用于 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()')

使用以下方法是否有任何我不知道的特定“陷阱”?

4

3 回答 3

4

试试.eq()这样$nextItem是一个jQuery集合:

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

// ...

$nextItem.click()

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

于 2012-06-06T23:38:18.233 回答
1

你可以试试

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

代替

if ($nextItem) {
    $nextButton.click(nextClick);
}​
于 2012-06-06T23:33:18.173 回答
0

如果将 if 语句的条件变为

if(typeof $nextItem == 'undefined' )

有用。正如 Porco 所说,可能 $nextItem 不存在....

于 2012-06-06T23:47:22.663 回答