使我的 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 使我所有的 javascript 都不起作用
带有 appcompat 的 Xamarin Android 使我的所有文本变为白色