通过 URL 话题标签更新 select 菜单
Update select menu by URL hashtag
我正在尝试更新 select 菜单以匹配幻灯片放映中的每张幻灯片。实际上,幻灯片放映是可收藏的,在 URL 上为每张幻灯片更新了一个主题标签。我的 select 菜单的每个选项都有一个 class,与每张幻灯片的主题标签相匹配。我使用 Cycle2 制作幻灯片,使用 DDslick 制作下拉菜单。但是,即使禁用了 DDslick,我的 javascript 也无法更新 select 菜单。
现在这是我的 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
你可以清楚地看到如何 select 你的元素在 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 编写数据模型,所以我对其进行了一些更改):
我正在尝试更新 select 菜单以匹配幻灯片放映中的每张幻灯片。实际上,幻灯片放映是可收藏的,在 URL 上为每张幻灯片更新了一个主题标签。我的 select 菜单的每个选项都有一个 class,与每张幻灯片的主题标签相匹配。我使用 Cycle2 制作幻灯片,使用 DDslick 制作下拉菜单。但是,即使禁用了 DDslick,我的 javascript 也无法更新 select 菜单。
现在这是我的 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
你可以清楚地看到如何 select 你的元素在 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 编写数据模型,所以我对其进行了一些更改):