私は、ユーザーがインラインの「ウィンドウ」を介して同じブラウザウィンドウで同じコンテンツの複数のページを開くことができるWebサイトを開発しています。
コンテンツは複数回繰り返すことができるため、IDは同じになる可能性があります。したがって、これらのページを区別できるように、それぞれを「処理」する必要があります。
私は現在、ロード時に次のようにスクリプトに一意のIDを割り当てることによってこれを行います。
var id_key;
function load_page() {
id_key++;
load_script("test.js") //load javascript file
}
//test.js:
$(function () {
var unique_id = id_key;
//adds the `unique id ` to the end of all elements with an id attribute set. ie `mycontainer` becomes `mycontainer_1`
update_ids(unique_id);
$("#mybtn_ " + unique_id).click(function () {
//do stuff
});
}
これはほとんどの場合正常に機能しますが、複数のページの読み込みが速すぎると、IDが上書きされて混乱やエラーが発生する傾向があります。
これを行うためのより良いテクニックがあるかどうか疑問に思います。私はbackbone.jsについて聞いたことがありますが、この場合にそれが役立つかどうかはわかりません。