jquery 函数仅在 IE7 中不起作用

发布于 2024-11-30 22:32:57 字数 721 浏览 1 评论 0原文

我有以下 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。

I have the following jquery code:

$(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();
}

It's working in all browsers except, naturally, IE7. In IE7 it fails to stop the propagation.

I'm using the latest version of jquery (1.6.2) but have also tried 1.5.2.

I'm really at a loss here; there are no trailing commas (that I can see...) and I can't find the problem. I'd really appreciate some assistance!

MTIA.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

予囚 2024-12-07 22:32:57

我只是猜测...你可以用这种方式尝试...

$(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) );

i am just guessing...can you try in this way...

$(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();

   });
});

or you need to pass event object to called function in this way-

$('.sliding-buttons').click( slidingContent(e) );
雨落□心尘 2024-12-07 22:32:57

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

$('.sliding-buttons').click( slidingContent(e) );

If slidingContent is a function, then you may want to treat it like a function, using parenthesis by calling it. Also, since you are referring to the original event inside the slidingContent function, you may need to pass the event as a function parameter (not sure about this though since I never used events like you are using.

$('.sliding-buttons').click( slidingContent(e) );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文