【发布时间】:2012-02-09 02:04:34
【问题描述】:
我现在有 .live 方面的工作,所以如果点击链接,我的功能就会被执行,但我试图弄清楚如何包含一个直接链接到内容的选项。像这样的:
$(showDiv).is('shipping-timeline')
or
$("#inm_if_hc_shipping_timeline").live('click', function() {
[code to show and hide divs]
});
showDiv 包含标识正确 id 的值,从 URL 中提取。
我的问题:如果任一情况为真,我如何构造要执行的 IF 语句?
有人可以帮忙吗?谢谢!
更新:
所以我从 Graydot 的答案中提取了 IF 部分并将其应用到我的代码中,这是一个更完整的示例,说明它现在的样子:
$("#inm_if_hc_faq").bind('click', function(e) {
if(showDiv == 'faq') {
// prevent default behavior
e.preventDefault();
$("#inm_if_hc_content_faq").show("slow");
$("#inm_if_hc_content_shipping_timeline").hide("fast");
}
});
我缺少的最重要的部分是具有默认行为和覆盖它的 IF...感谢 Graydot!
现在,当点击链接时,div 会按原样显示,但在输入 URL 时不会显示。
示例:http://myurl.com/thispage.html?show=faq
我没有在此处包含填充变量 showDiv 的函数,但我已在控制台中验证它包含应有的“常见问题解答”。
有人看到我还缺少什么吗?
谢谢!
最终更新:解决方案
一开始我并不理解它,但事实证明解决方案是重新思考我的方法。我很感激有人能看穿我的无知并想出了一个很好的解决方案。
这是工作代码示例:
$(window).bind('hashchange', function () {
var hval = location.hash.slice(1);
if (hval == "faq") {
$("#inm_if_hc_content_faq").show("slow");
$("#inm_if_hc_content_shipping_timeline").hide("fast");
}
});
$(document).ready(function() {
$(window).trigger('hashchange');
});
有了这个,链接可以像 href="#faq" 或来自另一个页面 href="http://mydomain.com/mypage#faq" 一样简单强>。无需解析变量的 URL 或使用 IF 语句来区分导航链接或外部链接。
希望这对其他人有所帮助,这样我就不必感到如此无知了! ;)
【问题讨论】:
-
问题不清楚!!!请解释清楚一点。
-
对不起,可以更清楚。请发布您正在使用的链接的 html,以及您打算如何区分它是实时链接还是链接。
标签: jquery hash if-statement hyperlink