【问题标题】:jQuery Use URL hash to select option formsjQuery 使用 URL 哈希选择选项表单
【发布时间】:2016-01-04 20:23:45
【问题描述】:

我正在尝试使用URL HASH来选择选项,并且在选项更改时,URL哈希更改。我有两个脚本,它们独立工作,但不能一起工作。有解决办法吗?目前它适用于选择 Apple 的 url.com/#Apple。但是当我将选择更改为橙色时,URL 不会更改为 url.com/#Orange Fiddle http://jsfiddle.net/q33zevup/1/

<select id="myselect">
    <option>Apple</option>
    <option>Orange B</option>
    <option>Pineapple</option>
    <option>Banana</option>
</select>

 <script>
    $('#myselect').change(function(){
        var url = $(this).val();
        window.location.hash = url;
    });
    </script> 
    <script>
    jQuery.noConflict();
    window.addEventListener('hashchange', fn, false);

    window.onload = fn; // fire on pageload

    function fn() {
        document.getElementById('myselect').value = window.location.hash.replace('#','');
    }
    </script>

【问题讨论】:

标签: jquery forms hash


【解决方案1】:

在更改 javascript 中的“myselect”以匹配 html 中的“mySelect”(大小写差异)后,它对我有用。 http://jsfiddle.net/q33zevup/3/

$(function(){
    $('#mySelect').change(function () {
        var url = $(this).val();
        window.location.hash = url;
        console.log('select Changed');
    });
});
window.addEventListener('hashchange', fn, false);

window.onload = fn; // fire on pageload

function fn() {
    $('#mySelect').val(window.location.hash.replace('#', ''));
    console.log("hash = " + window.location.hash);
}

【讨论】:

  • 目前它适用于选择 Apple 的 url.com/#Apple。但是当我将选择更改为橙色时,URL 不会更改为 url.com/#Orange
  • 奇怪...对我来说很好用。等等....你的 $('#mySelect').change 函数在 $(function(){ ... });包装?请参阅我上面的编辑代码。
  • 谢谢它确实有效,但我的页面有脚本冲突。我试图把 jQuery.noConflict();在函数 fn() 之前,但我似乎无法让它工作jsfiddle.net/q33zevup/4
  • 这是对 jQuery.noConflict() 的不当使用;你可以用 'jQuery' 替换所有的 '$' 或者你可以这样做: $j = jQuery.noConflict();然后在代码中使用'$j'而不是'$'。
猜你喜欢
  • 2012-01-30
  • 1970-01-01
  • 2018-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 2015-04-26
相关资源
最近更新 更多