我有一个在iframe中打开的链接列表,例如:
<ul id="frameTrigger">
<li><a target="iframe1" href="aaa.html"><img src="aaa.jpg"></a></li>
<li><a target="iframe1" href="bbb.html"><img src="bbb.jpg"></a></li>
<li><a target="iframe1" href="ccc.html"><img src="ccc.jpg"></a></li>
</ul>
我需要在点击链接后更新另一个div 。具体来说,我需要调用一个函数来检查框架的src
属性并更新div。如果我这样做:
$("#frameTrigger a").click(function() {
var iframe = $("iframe[name=iframe1]").get(0);
console.log(iframe.contentWindow.location.href);
// the problem here is that that the iframe.window.location will
// change AFTER this function returns
});
我没有得到预期的结果。
答案 0 :(得分:9)
我猜你得到旧的价值而不是新的价值?您可能希望将函数包装在setTimeout
1ms内,以允许更新通过。
答案 1 :(得分:2)
$("#frameTrigger a").click(function(){
console.log( $(this).attr("href") );
});
您需要第一个选择器来处理链接的点击。另外,我认为你的console.log语法不正确(虽然我从未使用过它)。我更改了它,所以当你点击一个链接时,它会记录链接的href属性。希望这会有所帮助。
答案 2 :(得分:0)
如果你在通过jQuery .click()调用点击时完成整个点击功能时遇到问题 - 我知道这不是理想的,但是 - 也许你应该让jQuery明确地完成点击时应该执行的序列。类似的东西:
$("#someElement").bind('click', function(event) {
event.preventDefault();
$($("#frameTrigger a:eq(1)").attr('target')).attr('src', $("#frameTrigger a:eq(1)").attr('href'));
});