基于URL参数DRY的视频弹出触发事件

时间:2018-07-27 16:56:57

标签: javascript jquery

我正在尝试清理此代码。我怎么做这个干的?我要重复很多代码。

function getURLParameter(name) {
return decodeURI(
    (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);}

if(getURLParameter('video1')==1){ $(".urlVid1").trigger('click'); }

if(getURLParameter('video2')==1){ $(".urlVid2").trigger('click'); }

if(getURLParameter('video3')==1){ $(".urlVid3").trigger('click'); }

if(getURLParameter('video4')==1){ $(".urlVid4").trigger('click'); }

1 个答案:

答案 0 :(得分:0)

至少有两种方法可以执行此操作。您可以使用循环的索引,也可以明确列出要考虑的键。

function getURLParameter(name) {
  return decodeURI(
    (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1]
  );
}

//using just the number
[1, 2, 3, 4].forEach(function(key){
  if (getURLParameter('video'+ key) === 1) {
    $('.urlVid'+ key).trigger('click');
  }
});

//explicitly giving the keys
[
  { video: 'video1', url: '.urlVid1' }
  , { video: 'video2', url: '.urlVid2' }
].forEach(function(pair){
  if (getURLParameter(pair.video) === 1) {
    $(pair.url).trigger('click');
  }
});