clickTag1、clickTag2、clickTag3のような名前を持つ3つのclickTagをバナーに追加する必要があります。これで、コードは次のようになります。
for(var i = 1; i <= 3; i++) {
document.getElementById('Destination_cta_' + i).addEventListener('click', function() {
window.open(clickTag2, '_blank'); //here I want clickTag look like clickTag + i, but its not working.
})
}
したがって、問題はvar名をループする方法です。これにより、現在のように手動で配置する必要がなくなります。
この問題を解決する最もクリーンな方法は、配列を使用することです。
[, clickTag1, clickTag2, clickTag3].forEach(function(e, i) {
document.getElementById('Destination_cta_' + i).addEventListener('click', function() {
window.open(e, '_blank');
})
})
別の方法:clickTag
がグローバル変数の場合、window
オブジェクトのグローバルプロパティとしていつでもアクセスできます。
for(var i = 1; i <= 3; i++) (function (i) {
document.getElementById('Destination_cta_' + i).addEventListener('click', function() {
window.open(window['clickTag' + i], '_blank')
})
)(i)
追加のラッピング関数は、上記のコメントに記載されているクロージャーのバグを修正します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加