現在、次のように div のコンテンツを非表示および表示しています。
var header = null;
var content = null;
var mainHolder = null;
var expandCollapseBtn = null;
var heightValue = 0;
header = document.getElementById("header");
content = document.getElementById("content");
mainHolder = document.getElementById("mainHolder");
expandCollapseBtn = header.getElementsByTagName('img')[0];
heightValue = mainHolder.offsetHeight;
header.addEventListener('click', handleClick, false);
mainHolder.addEventListener('webkitTransitionEnd',transitionEndHandler,false);
function handleClick() {
if(expandCollapseBtn.src.search('collapse') !=-1)
{
mainHolder.style.height = "26px";
content.style.display = "none";
}
else
{
mainHolder.style.height = heightValue + "px";
}
}
function transitionEndHandler() {
if(expandCollapseBtn.src.search('collapse') !=-1)
{
expandCollapseBtn.src = "expand1.png";
}
else{
expandCollapseBtn.src = "collapse1.png";
content.style.display = "block";
}
}
コンテンツが静的であればこれで問題ありませんが、そのように div を動的に設定しようとしています。
これは iPhone アプリケーションから呼び出され、div に文字列を設定します。
var method;
function myFunc(str)
{
method = str;
alert(method);
document.getElementById('method').innerHTML = method;
}
文字列を変数メソッドにグローバルに保存します。私が抱えている問題は、折りたたんだばかりの div を展開しようとすると、そこには何もないことです。var に保存されている情報を使用して、再度展開する前に div を再設定する方法はありますか? 関数のように挿入しようとしましたが、うまくいきません。
誰にもアイデアはありますか?
複製するには:
これがjsfiddleです。jsfiddle.net/6a9B3 ここにテキストを入力すると
それはうまくいきます。このjsfiddleで文字列を使用してmyfuncを1回だけ呼び出す方法がわかりませんが、その方法を理解できれば、最初は正常にロードされることがわかりますが、セクションを折りたたんで再度開こうとするとそれは、うまくいきません。これを修正する唯一の方法が jquery を使用することである場合、そのルートをたどってもかまいません。