javascript jQuery“单击后”事件

mspsb9vt  于 2022-11-27  发布在  Java
关注(0)|答案(3)|浏览(170)

我有一个在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
});

我没有得到预期的结果。

pb3s4cty

pb3s4cty1#

我猜你得到的是旧值而不是新值?你可能想把你的函数 Package 在一个1ms的setTimeout中,以允许更新通过。

hfsqlsce

hfsqlsce2#

$("#frameTrigger a").click(function(){
    console.log( $(this).attr("href") );
});

你需要第一个选择器来处理链接的点击。另外,我认为你的console.log语法不正确(虽然我从来没有用过它)。我修改了它,所以当你点击一个链接时,它会记录链接的href属性。希望这能有所帮助。

ecfdbz9o

ecfdbz9o3#

如果您在通过jQuery.click()调用click时遇到了完成整个click功能的问题. -我知道这并不理想,但是--也许您应该让jQuery显式地完成单击时应该执行的序列。

$("#someElement").bind('click', function(event) {
    event.preventDefault();
    $($("#frameTrigger a:eq(1)").attr('target')).attr('src', $("#frameTrigger a:eq(1)").attr('href'));
});

相关问题