首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于URL哈希的更改HTML5数据选项

基于URL哈希的更改HTML5数据选项
EN

Stack Overflow用户
提问于 2014-11-09 08:43:22
回答 2查看 104关注 0票数 0

我有以下div:

代码语言:javascript
复制
<div id="nav-aj"  data-options='{"default":'t1","animation": {"duration": 500, "effects": "fade"}}'> </div>

我想根据我从URL散列得到的内容来更改默认选项的值。

代码语言:javascript
复制
var hash = location.href.substr(location.href.indexOf('#')+1);
alert(hash);

例如,如果哈希值为A,则默认值为t1,否则为t2。

URL结构是http://example.com/page#A,也可以是http://example.com/page#B

我坚持的是改变默认值的值。

EN

回答 2

Stack Overflow用户

发布于 2014-11-09 09:16:49

试试这个:

代码语言:javascript
复制
function updateDiv(hash) {
    var $div = $('#nav-aj');
    var options = $div.data('options');
    switch (hash) {
        case 'A':
            options['default'] = 't1';
            break;
        case 'B':
            options['default'] = 't2';
            break;
        default:
            option['default'] = 't1';
    }
    $div.attr('data-options', options);
}

$(function () {

    var hash = window.location.hash.split('#')[1]
    updateDiv(hash);

    $(window).on('hashchange', function () {
        updateDiv(window.location.hash.split('#')[1]);
    });

});

另外,由于您的data-options中有一个错误的引号,因此请使用此命令:

代码语言:javascript
复制
<div id="nav-aj" data-options='{"default":"t1","animation": {"duration": 500, "effects": "fade"}}'></div>
票数 0
EN

Stack Overflow用户

发布于 2014-11-09 09:24:31

html

代码语言:javascript
复制
<!-- added `""` around `t1` -->
<div id="nav-aj"  data-options='{"default":"t1","animation": {"duration": 500, "effects": "fade"}}'> </div>

js

代码语言:javascript
复制
var url = window.location.href
, hash = url.split("#")[1] === "A" ? "t1" : "t2";
  $("#nav-aj").data("options").default = hash;

代码语言:javascript
复制
var url = "http://example.com/page#B"
, hash = url.split("#")[1] === "A" ? "t1" : "t2";

  $("#nav-aj").data("options").default = hash;
console.log(hash, $("#nav-aj").data("options").default);
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="nav-aj"  data-options='{"default":"t1","animation": {"duration": 500, "effects": "fade"}}'> </div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26823724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档