1

我在使用 JQuery 和 Safari(Windows 版本)时遇到问题。该代码适用于 FF/IE7/Chrome,但不适用于 Safari。

我有一个简单<li><div>嵌入到 - 单击<li>应该暴露隐藏的div,但不是在 Safari 中。

的HTML:

<ul>
<li>something</li>
<li>something2</li>
<li class="more">
        <a href="" class="moreFacetsLink">Click to see more options</a>
        <div class="moreFacets">bunch of text</div>
</li>
</ul>

这是JQuery代码:


     $('.moreFacetsLink').click(function () {
$(this).siblings('div').toggle(); });

关于这里可能发生的事情有什么想法吗?再次 - 这似乎适用于所有其他浏览器!

我是 JQuery 的新手。

谢谢!

4

4 回答 4

1

How accurate is your HTML pasting?

You never closed your "moreFacetsLink" anchor tag, which probably makes Safari think that it was implicitly closed, and the "bunch of text" is surrounded by an additional, HREF-less Class-less Unclosed anchor tag... evidenced by the fact that this:

$(".moreFacetsLink").click(function () {
    $(this).siblings("a").children("div").toggle();
});

... does what you want with your submitted markup.

Close off your anchor tag properly (bonus points for including the href attribute) and you should be good to go.

于 2008-11-14T21:04:43.763 回答
0

href="" 在 safari 中重新加载您的页面
我会尝试使用 css 为其添加下划线和样式,然后删除空的 href。

于 2009-03-18T10:56:21.173 回答
0

我很确定您需要return false;从点击功能中取消链接点击。

于 2010-10-08T20:40:47.050 回答
0

首先,您需要检查浏览器是否正在回发,如果是这样,您可以像这样避免它

$('.moreFacetsLink').click(function (e) {
    e.preventDefault(); // this prevent postback

    $(e.target).siblings('div').toggle();
});

试试这个:$(e.target)而不是这个,$(this)
这可能是一种不同的方式

希望这可以帮助

于 2011-05-04T17:25:33.743 回答