2014-07-19 7 views
-1

이 주제와 관련하여 여러 게시물을 보았지만 다른 방법을 시도해 보았지만 문제를 해결할 수 없었습니다.토글 숨기기/표시 표 td .hta

.hta 파일에서 프로그래밍 중입니다. 여기에 내 모든 메모 제목이 서로 위에 나열되어 있습니다. 노트 제목을 클릭 할 때마다 제목 아래에 설명이 나타나야합니다 (토글/확장). 모든 음표가 숨겨지기 시작해야합니다.

sub searchdata 

    SQL_query = "SELECT * FROM dvd WHERE Title LIKE '%"& txtsrch.value &"%' OR Notes LIKE '%"& txtsrch.value &"%' ORDER BY Title" 
    Set rsData = conn.Execute(SQL_query) 
    strHTML2 = strHTML2 & "" 
    Do Until rsData.EOF = True 
    strHTML2 = strHTML2 & "<table width='97%' border='0' id='bodytext' style='border-bottom: solid #000000 1px;'><tr><span class'togglelink'><td width='70%' style='cursor: pointer'><b>" & rsData("Title") & "</b></td></span><td align='right' style='color: #000'>" & rsData("Cat") & "&nbsp; <a href='#' onclick='editUser("& rsData("ID") &")' language='vbscript'><img src='images/arrow-blue.png' border='0' title='Rediger notatet' /></a>&nbsp;<a href='#' onclick='deleteUser("& rsData("ID") &")' language='vbscript'><img src='images/slet.png' border='0' title='Slet notatet' /></a></td><tr><span class='toggle' style='display: block'><td colspan='2'>" & rsData("Notes") & "</td></span></tr></table>" 
    rsData.moveNext ' go to next record 
    Loop 
    strHTML2 = strHTML2 & "" 
    searchIT.innerHTML = strHTML2 

end sub 

나는 그것을 실행하려면이 스크립트를 JS 사용하고 있습니다 :

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.toggle').hide(); 
    $('span.togglelink').on('click', function (e) { 
     e.preventDefault(); 
     var elem = $(this).next('.toggle') 
     $('.toggle').not(elem).hide('fast'); 
     elem.toggle('fast'); 
    }); 
}); 
</script> 

내가 쉽게 얻을 수있는 스크립트를 그냥 일반 텍스트로 테스트 할 때 작동 할 수 있습니다. JSFiddle

사이드 질문 : HTML과 프로그래밍이 너무 다른가요? HTA에서 작업하기 위해 내 전체 사이트 (MySQL, PHP, HTML)를 변환하려는 많은 문제를 겪고 있습니다. 사전에

감사합니다!

업데이트 : 내 전체를 .hta 스크립트 상장 :의이 문서 후 부착 할 것 div.togglelink '는로드 된

<html> 
<HTA:APPLICATION ID="oHTA" 
    APPLICATIONNAME="myApp" 
    BORDER="thick" 

    CAPTION="yes" 
    ICON=./images/Icon.ico 
    MAXIMIZEBUTTON="yes" 
    MINIMIZEBUTTON="yes" 
    SHOWINTASKBAR="yes" 
    SINGLEINSTANCE="no" 
    SYSMENU="yes" 
    RESIZE="yes" 
    VERSION=7.2 
    WINDOWSTATE="normal" 
    contextMenu=no 
    > 
<head> 
<style> 
#vis1{ 
    display:none; 
} 
</style> 
<script type="text/javascript"> // Width and height in pixel to the window 
    window.resizeTo(683,725); 
</script> 
<script type="text/javascript"> 

var enablepersist="on" //Enable saving state of content structure using session cookies? (on/off) 
var collapseprevious="Yes" //Collapse previously open content when opening present? (yes/no) 

if (document.getElementById){ 
document.write('<style type="text/css">') 
document.write('.switchcontent{display:none;}') 
document.write('</style>') 
} 

function getElementbyClass(classname){ 
ccollect=new Array() 
var inc=0 
var alltags=document.all? document.all : document.getElementsByTagName("*") 
for (i=0; i<alltags.length; i++){ 
if (alltags[i].className==classname) 
ccollect[inc++]=alltags[i] 
} 
} 

function contractcontent(omit){ 
var inc=0 
while (ccollect[inc]){ 
if (ccollect[inc].id!=omit) 
ccollect[inc].style.display="none" 
inc++ 
} 
} 

function expandcontent(cid){ 
if (typeof ccollect!="undefined"){ 
if (collapseprevious=="yes") 
contractcontent(cid) 
document.getElementById(cid).style.display=(document.getElementById(cid).style.display!="block")? "block" : "none" 
} 
} 

function revivecontent(){ 
contractcontent("omitnothing") 
selectedItem=getselectedItem() 
selectedComponents=selectedItem.split("|") 
for (i=0; i<selectedComponents.length-1; i++) 
document.getElementById(selectedComponents[i]).style.display="block" 
} 

function get_cookie(Name) { 
var search = Name + "=" 
var returnvalue = ""; 
if (document.cookie.length > 0) { 
offset = document.cookie.indexOf(search) 
if (offset != -1) { 
offset += search.length 
end = document.cookie.indexOf(";", offset); 
if (end == -1) end = document.cookie.length; 
returnvalue=unescape(document.cookie.substring(offset, end)) 
} 
} 
return returnvalue; 
} 

function getselectedItem(){ 
if (get_cookie(window.location.pathname) != ""){ 
selectedItem=get_cookie(window.location.pathname) 
return selectedItem 
} 
else 
return "" 
} 

function saveswitchstate(){ 
var inc=0, selectedItem="" 
while (ccollect[inc]){ 
if (ccollect[inc].style.display=="block") 
selectedItem+=ccollect[inc].id+"|" 
inc++ 
} 

document.cookie=window.location.pathname+"="+selectedItem 
} 

function do_onload(){ 
uniqueidn=window.location.pathname+"firsttimeload" 
getElementbyClass("switchcontent") 
if (enablepersist=="on" && typeof ccollect!="undefined"){ 
document.cookie=(get_cookie(uniqueidn)=="")? uniqueidn+"=1" : uniqueidn+"=0" 
firsttimeload=(get_cookie(uniqueidn)==1)? 1 : 0 //check if this is 1st page load 
if (!firsttimeload) 
revivecontent() 
} 
} 


if (window.addEventListener) 
window.addEventListener("load", do_onload, false) 
else if (window.attachEvent) 
window.attachEvent("onload", do_onload) 
else if (document.getElementById) 
window.onload=do_onload 

if (enablepersist=="on" && document.getElementById) 
window.onunload=saveswitchstate 

</script> 
<title>Søgning</title> 
<link href="stylesheet/stylesheet.css" rel="stylesheet" type="text/css" /> 
<link rel="SHORTCUT ICON" href="images/icon.ico"/> 
<script type="text/javascript" charset="utf-8" src="jquery/jquery-1.7.min.js"></script> 

<script language="vbscript"> 

Dim conn 'GLOBAL doing this here so that all functions can use it 

sub dotheconnection 

    Set conn = CreateObject("ADODB.Connection") 

    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =./Database/data.mdb; User Id=; Password=" 

    If conn.errors.count <> 0 Then 


    else 
     ' if connected OK call sub getdata 
     getdata 

    end if 
end sub 

sub getdata 

    SQL_query = "SELECT * FROM dvd ORDER BY Title" 
    Set rsData = conn.Execute(SQL_query) 

    strHTML = strHTML & "" 
    Do Until rsData.EOF = True 
    strHTML = strHTML & "<table width='97%' border='0' id='bodytext' style='border-bottom: solid #000000 1px;'><tr><td width='70%' style='cursor: pointer'><span id='vis'><b>" & rsData("Title") & "</b></span></td><td align='right' style='color: #000'>" & rsData("Cat") & "&nbsp; <a href='#' onclick='editUser("& rsData("ID") &")' language='vbscript'><img src='images/arrow-blue.png' border='0' title='Rediger notatet' /></a>&nbsp;<a href='#' onclick='deleteUser("& rsData("ID") &")' language='vbscript'><img src='images/slet.png' border='0' title='Slet notatet' /></a></td><tr><td colspan='2'><span id='vis1'>" & rsData("Notes") & "</span></td></tr></table>" 

    rsData.moveNext ' go to next record 
    Loop 

    strHTML = strHTML & "" 

    SQL_query = "SELECT Count(*) AS intTotal FROM dvd" 
    Set rsData = conn.Execute(SQL_query) 
    strHTML1 = strHTML1 & "" 
    strHTML1 = strHTML1 & "" & rsData("intTotal") & " " 
    Count.innerHTML = strHTML1 
end sub 

sub searchdata 

    SQL_query = "SELECT * FROM dvd WHERE Title LIKE '%"& txtsrch.value &"%' OR Notes LIKE '%"& txtsrch.value &"%' ORDER BY Title" 
    Set rsData = conn.Execute(SQL_query) 
    strHTML2 = strHTML2 & "" 
    Do Until rsData.EOF = True 
    strHTML2 = strHTML2 & "<table width='97%' border='0' id='bodytext' style='border-bottom: solid #000000 1px;'><tr><span class'togglelink'><td width='70%' style='cursor: pointer'><b>" & rsData("Title") & "</b></td></span><td align='right' style='color: #000'>" & rsData("Cat") & "&nbsp; <a href='#' onclick='editUser("& rsData("ID") &")' language='vbscript'><img src='images/arrow-blue.png' border='0' title='Rediger notatet' /></a>&nbsp;<a href='#' onclick='deleteUser("& rsData("ID") &")' language='vbscript'><img src='images/slet.png' border='0' title='Slet notatet' /></a></td><tr><span class='toggle' style='display: block'><td colspan='2'>" & rsData("Notes") & "</td></span></tr></table>" 
    rsData.moveNext ' go to next record 
    Loop 
    strHTML2 = strHTML2 & "" 
    searchIT.innerHTML = strHTML2 

end sub 

sub deleteUser(id) 
    If MsgBox("Vil du slettet dette notat?", vbYesNo) =vbYes Then  
    SQL_query = "DELETE * FROM dvd WHERE ID = " & id 
    conn.Execute(SQL_query) 
    getdata 
    reloadpage() 
Else 
    MsgBox("Notatet er ikke blevet slettet.") 
End IF 
end sub 

sub addUser 

    SQL_query = "INSERT INTO dvd (Title,Length,Notes,Cat) VALUES ('"& txtTitle.value &"','"& txtLength.value &"','"& txtNotes.value &"','"& txtCat.value &"')" 
    conn.Execute(SQL_query) 
    reloadpage() 
    expandcontent("sc2") 
    getdata 

end sub 

sub editUser(id) 

    SQL_query = "SELECT * FROM dvd WHERE ID=" & id 
    Set rsData=conn.Execute(SQL_query) 
    txtTitle.value = rsData("Title") 
    txtLength.value = rsData("Length") 
    txtNotes.value = rsData("Notes") 
    txtCat.value = rsData("Cat") 
    txtID.value = rsData("ID") 
    btnUpdate.disabled = false // Show 
    btnOpret.disabled = true // Hide 
    expandcontent("sc2") 
    getdata 

end sub 


sub updateUser 

    SQL_query = "UPDATE dvd SET Title='"& txtTitle.value &"', Length='"& txtLength.value &"' , Notes='"& txtNotes.value &"', Cat='"& txtCat.value &"' WHERE ID= " & txtID.value 
    conn.Execute(SQL_query) 
    getdata 
    reloadpage() 
    expandcontent("sc2") 

end sub 


</script> 
<script type="text/javascript" charset="utf-8" src="jquery/jquery-1.7.min.js"></script> 
<SCRIPT TYPE="text/javascript"> 
function init() 
{ 
dotheconnection(); 
searchdata(); 
getdata(); 
} 
</SCRIPT> 

    <script> 
function addNotat() { 
    btnOpret.disabled = false; // Show 
    btnUpdate.disabled = true; // Hide 
    expandcontent("sc2"); 
} 
</script> 
<script> 
function reloadpage() { 
    location.reload(); 
} 
</script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('.toggle').hide(); 
    $('div.togglelink').on('click', function (e) { 
     e.preventDefault(); 
     var elem = $(this).next('.toggle') 
     $('.toggle').not(elem).hide('fast'); 
     elem.toggle('fast'); 
    }); 
}); 
</script> 
</head> 

<body onLoad="init()" language="vbscript"> 

<table width="100%" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td height="40" width="20%" id="top_bar"> 
<input language="vbscript" onload="searchdata" onkeyup="searchdata" name="txtsrch" id="filter_input" width="15%" tabindex="0" autofocus="autofocus" size="35" type="search" style="background: url(images/search_bg.png) #FFF no-repeat left; padding-left: 20px; margin-left: 10px" placeholder="Søgning">&nbsp;</td> 

<td id="top_bar"></div><span id="Count"></span> notater </td> 

<td width="22%" id="top_bar" align="right"><input type="button" style="margin-right: 10px" onClick="history.go(0)" value="Opdater"><a onClick="addNotat()" style="cursor: hand">Opret</a>&nbsp;</span></td> 
<td width="20%" id="top_bar" align="right"><a href="" target="_blank"><img src="images/footer-logo.png" style="margin-right: 10px" border="0" title="Gå til forsiden" /></a></td> 
</tr> 
</table> 
<br> 
<div id="sc2" class="switchcontent" style="margin-left: 10px"> 
<b>Title:<br></b><input type="text" name="txtTitle" size="43"><br> 
<b>Kategori:</b><br> 
<select size="1" name="txtCat"> 
    <option value="">Vælg kategori</option> 
    <option value="Thriller">Thriller</option> 
    <option value="Westerns">Westerns</option> 
</select><br> 
<b>Length</b><br><input type="text" name="txtLength" size="8"><br> 
<b>Notat:</b><br><textarea rows="6" name="txtNotes" cols="55"></textarea><br> 

<p align="left"><b> 
<input type="button" name="btnOpret" value="Opret" onclick="addUser" language="vbscript" disabled> 
<input type="button" name="btnUpdate" value="Gem" onclick="updateUser" language="vbscript" disabled> 
<input type="hidden" name="txtID"> 
</b></p> 

</div> 
</div> 
<div id="searchIT" style="margin-left: 10px"></div> 
</body> 
</script> 


</html> 
+0

작품 (http://fiddle.jshell.net/sezwj/680/show/의 사본을 저장하고 그것을 확장 HTA했다). 필요한 유일한 수정은 jquery에 대한 경로였습니다 (프로토콜은 바이올린에서 제외되었습니다). –

+0

예, 제가 '일반 텍스트'일 때 스크립트에 아무런 문제가 없다고 말씀 드렸습니다. 볼 수 있듯이 JSFiddle에서 작동합니다 . 아마도 나는 전체 스크립트를 게시해야 할 것이고, 비트는 게시하지 않을 것입니다. – Sparcx

+0

전체 스크립트에 토글 부분이 포함되어 있지 않습니다. –

답변

0

, 당신의 on에만 존재하는 요소에 영향을 미칠 것 -handler을 때 문서가로드됩니다.

가 대신 본체에 핸들러를 첨부 : 문제없이 나를 위해

$('body').on('click','span.togglelink',function(){/*your callback*/}); 
+0

아직 작동하지 않습니다. $ { 'toggle'} '' – Sparcx

+0

나는 준비된 핸들러를 수정할 것을 제안하지 않았다. –

+0

오케이 죄송합니다, 나는 코딩에 능숙하지 않습니다. 특히 자바 스크립트. 보여줄 수 있다면 정말 큰 도움이 될 것입니다. 미리 감사드립니다. – Sparcx