トグルする複数のdivがあるページで作業しています。この機能は動作します。検索機能が追加され、これも機能します。
現在存在するページの問題:検索バーが「デフォルト」のdivに配置され、結果がバーの下にある別のdivに読み込まれ、空の場合は表示されません。結果のdivは、この最初のデフォルトのdiv内にあります。別のdivに切り替えると、デフォルトのdivが失われ、元に戻すことができなくなります。
このため、検索バーを他のトグルリンクが配置されている左側のナビゲーションに移動しました。また、検索結果のdivをデフォルトのdivから「独立」するように移動しました。
私がやろうとしていること:検索ボタンに結果を含むdivを表示させ、結果を検索します。基本的に、検索機能を配列/トグル機能に統合します。検索機能は1つの.jsファイルにあり、トグル機能は別の.jsファイルにあります。
両方の.jsファイルから「onclick」を呼び出す方法が必要だと私は考え続けています。これにより、既存の2つの機能を組み合わせて別々に機能するために、余分な作業を行う必要がなくなります。私は例によって学習しているJavascriptの初心者であり、これを理解することができませんでした。私はこれの実用的な例を見たことがなく、私の検索はそれを生み出していません。
助けていただければ幸いです。私が問題を適切に説明したことを望みます。
編集:これは私がトグル機能のためにすでに持っているコードです。
var ids=new Array('a','b','c',[and so on--search results not added here yet]);
function switchid(id_array){
hideallids();
for( var i=0, limit=id_array.length; i < limit; ++i)
showdiv(id_array[i]);
}
function hideallids(){
for (var i=0;i<ids.length;i++){
hidediv(ids[i]);
}
}
function hidediv(id) {
//safe function to hide an element with a specified id
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById(id).style.display = 'none';
}
else {
if (document.layers) { // Netscape 4
document.id.display = 'none';
}
else { // IE 4
document.all.id.style.display = 'none';
}
}
}
function showdiv(id) {//safe function to show an element with a specified id
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById(id).style.display = 'block';
}
else {
if (document.layers) { // Netscape 4
document.id.display = 'block';
}
else { // IE 4
document.all.id.style.display = 'block';
}
}
}
function initialize(){
var t = gup("target");
if( t )
{
switchid([t]);
}
}
function gup( name )
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null ){
return "";
} else {
return results[1];
}
}
前もって感謝します!