使我的 Jquery 代码适合所有带有 class="trigger" 的链接。无法让 next() 发挥作用

Posted

技术标签:

【中文标题】使我的 Jquery 代码适合所有带有 class="trigger" 的链接。无法让 next() 发挥作用【英文标题】:Make my Jquery code fit all links with class="trigger". Can't get next() to function 【发布时间】:2011-09-13 00:56:46 【问题描述】:

html:

<a id="invitation" class="trigger" href="#"><img src="img.jpg"/></a>
<a id="dummy" class="hide">Do something</a>
<div id="invitationbox"></div>

当我这样做时,我得到了 jquery 代码:

$(".trigger").click(function() 
$('#invitation').load('invitation.php', function() 
$('#dummy').trigger('click');
);
);

但是希望它在类触发器的多个链接上工作......那么我如何重写代码以在多个地方工作?

示例: (无法让它工作......)

html:

<a id="anotherid" class="trigger" href="#"><img src="img.jpg"/></a>
<a class="hide">Do something</a>
<div id="anotheridbox"></div>

jquery:

$(".trigger").click(function() 
var currentId = $(this).attr('id');
var contentId = $currentId + "box";
$($contentId).load('invitation.php', function() 
$(this).next("a").trigger('click');
);
);

帮助我简化我的代码,谢谢! :)

【问题讨论】:

【参考方案1】:

在您的代码上下文中存在一些错误:

$(".trigger").click(function() 
    var currentId = $(this).attr('id');

    // $currentId is never declared
    var contentId = $currentId + "box";

    // $contentId is never declared and the id selector should be begin with a #
    $($contentId).load('invitation.php', function() 
        // $(this) is the element related to contentId, so there is 
        // no next("a") to trigger a click on
        $(this).next("a").trigger('click');
    );
);

试试这个:

$(".trigger").click(function() 
    var $trigger = $(this);
    $("#" + $trigger.attr('id') + 'box').load('invitation.php', function() 
        $trigger.next("a").click();
    );
);

【讨论】:

感谢猎人的回复! $trigger 返回 [object 对象]。当我做了 alert($trigger) 来检查时。尝试了代码,它似乎不起作用,加载功能永远不会运行,点击也不会发生。 :// $trigger 应该是[object object]。在这种情况下,它是一个 jQuery 对象。其他地方的代码中一定还有其他错误。使用 Chrome Inspector、Firebug 或 IE Developer Tools 等调试器来查看发生了什么。 让它像这样工作:可能不是最好的方法,但对我有用:) $(".trigger").click(function() var $currentId =$( this).attr('id'); var $newlink = $currentId + '.php'; var $newcontent = '#' + $currentId + 'box'; var $nextlink = '#' + $(this). next().attr('id'); $($newcontent).load($newlink, function() $($nextlink).trigger('click'); ); );感谢您的帮助:>

以上是关于使我的 Jquery 代码适合所有带有 class="trigger" 的链接。无法让 next() 发挥作用的主要内容,如果未能解决你的问题,请参考以下文章

无法通过单击使我的 jquery 动画回来

升级 JQuery 使我所有的 javascript 都不起作用

带有 appcompat 的 Xamarin Android 使我的所有文本变为白色

为啥我需要更加努力地使我的 Rails 应用程序适合 RESTful 架构?

如何使我的图像完全适合 UIView

如何在类中使用带有空格的jquery选择器?