1

我有以下 jquery 代码:

$(function() {
    $('.sliding-buttons').click(slidingContent);
});

function slidingContent(e) {
    var boxID = $(this).attr('id'),
        boxName = $(this).attr('name');

    $('.sliding-holder#s-h-' + boxName).css({'display' : 'block'}).addClass('open');
    $('.sliding-content#s-c-' + boxName + '-' + boxID).css({'display' : 'block'}).addClass('open');
    $('.sliding-box#s-b-' + boxName).stop(true, true).animate({
        top:'0'
        },'slow');

    e.stopPropagation();
    e.preventDefault();
}

它适用于所有浏览器,当然除了 IE7。在 IE7 中,它无法停止传播。

我正在使用最新版本的 jquery (1.6.2),但也尝试过 1.5.2。

我真的很茫然;没有尾随逗号(我可以看到...),我找不到问题。我真的很感激一些帮助!

MTIA。

4

2 回答 2

1

我只是在猜测……你能不能这样试试……

$(function() {
    $('.sliding-buttons').click(function(e){
         var boxID = $(this).attr('id'),
        boxName = $(this).attr('name');

    $('.sliding-holder#s-h-' + boxName).css({'display' : 'block'}).addClass('open');
    $('.sliding-content#s-c-' + boxName + '-' + boxID).css({'display' : 'block'}).addClass('open');
    $('.sliding-box#s-b-' + boxName).stop(true, true).animate({
        top:'0'
        },'slow');

    e.stopPropagation();
    e.preventDefault();

   });
});

或者您需要以这种方式将事件对象传递给被调用函数-

$('.sliding-buttons').click( slidingContent(e) );
于 2011-08-23T06:47:41.547 回答
0

如果slidingContent 是一个函数,那么您可能希望将其视为一个函数,通过调用它使用括号。另外,由于您指的是slidingContent函数中的原始事件,您可能需要将该事件作为函数参数传递(虽然不确定这一点,因为我从未使用过您正在使用的事件。

$('.sliding-buttons').click( slidingContent(e) );
于 2011-08-23T06:49:04.400 回答