javascript - 通过 URL 主题标签更新选择菜单

标签 javascript jquery html cycle2

我正在尝试更新选择菜单以匹配幻灯片放映中的每张幻灯片。事实上,幻灯片放映是可收藏的,在每张幻灯片更新的 URL 上都有一个主题标签。我的选择菜单中的每个选项都有一个类,它与每张幻灯片的主题标签相匹配。我使用 Cycle2 制作幻灯片,使用 DDslick 制作下拉菜单。但是,即使禁用了 DDslick,我的 javascript 也无法更新选择菜单。

现在这是我的 javascript;

$( ".cycle-pager span, #prev, #next" ).click(function() {
      if ($('.watch').css('opacity') == '1') {
        var link=$(this).attr('data-cycle-hash');
        var hash = link.substring(link.indexOf('#')+1);
        $('#selectOptions2 option').removeAttr('selected');
        $('#selectOptions2 .'+hash).attr('selected',true);
      }
});

这是 JSfiddle 上的完整示例设置:https://jsfiddle.net/liquilife/du2qztfq/5/

我觉得我真的很接近,只是不确定这里哪里出了问题。

最佳答案

你好,我必须说你滥用了这两个库,尽量不要破解你的出路,仅仅因为它有效就让它成功,试着在没有变通办法的情况下让它正确。

DDsclick 文档:

http://designwithpc.com/Plugins/ddSlick#demo

你可以清楚地看到如何在ddsclick selectbox中选择你的元素:

$('#demoSetSelected').ddslick('select', {index: i });

Cycle2 文档:

http://jquery.malsup.com/cycle2/api/#auto-init

在这里你可以看到有一个叫做'cycle-after'的事件是在下一张幻灯片加载完成后触发的,用法是这样的:

$( '#mySlideshow' ).on( 'cycle-eventname', function( event, opts ) {
    // your event handler code here
    // argument opts is the slideshow's option hash
});

并使用您的数据完成所有内容(我更喜欢用 JS 编写数据模型,所以我对其进行了一些更改):

https://jsfiddle.net/pegla/hwrtrzkh/3/

关于javascript - 通过 URL 主题标签更新选择菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46286781/

相关文章:

javascript - jwplayer 更新(版本 7.6)后 jwplayereek 无法工作

html - 如果事件下 zipper 接,文本下划线

javascript - 如何获取手机的位置

javascript - OnClick 事件未绑定(bind)/触发

javascript - 使用 jQuery 在悬停时预览图库中的相应图像

javascript - 使用 JavaScript 更改伪元素::文本内容之后

javascript - Angular 性能 : ngStyle recalculates on each click on random input

javascript - 如何检测字符串的特定范围是否在换行符中?

javascript - 将 JavaScript(nodeJS) 字符串拆分为固定大小的 block

javascript - 使用 jQuery 获取文档的实际高度