2009-06-30 14 views
1

Ich habe ein HTML-Bild. In seinem onClick-Ereignis habe ich Code geschrieben, um einen Kalender anzuzeigen. Ich möchte dieses Bild deaktivieren, was bedeutet, dass ich nicht in der Lage sein sollte, auf dieses Bild zu klicken, aber das Bild sollte sichtbar sein. Ich möchte das Onclick-Ereignis des Bildes deaktivieren. Kann jemand helfen?Um Bild zu deaktivieren

+0

Wie wird der Kalender dann angezeigt? –

+1

Zur Verdeutlichung: Sie möchten die Onclick-Methode eines Bildes deaktivieren können. Richtig? – glasnt

Antwort

0

Ich nehme an, Sie haben so etwas wie:

<a href="#" onclick="cal.prevMonth(); return false;" class="Prev">&nbsp;</a> 
... 
<script> 
    var Calendar = function() { 
     var month = ...; 

     var updateDisplay = function() { 
      ... 
     }; 

     return { 
      prevMonth: function() { 
       month--; 
       updateDisplay(); 
      } 
     }; 
    }; 

    var cal = new Calendar(); 
</script> 

Calendar ist eine Klasse mit private members ist cal eine Instanz dieser Klasse.

Alles, was Sie tun müssen, ist ein neues Mitglied Calendar hinzufügen, die verfolgt, ob Ihre onclick sollte deaktiviert werden, z. isDisabled, und überprüfen Sie dies in der Funktion, die Sie in Ihrem onclick anrufen, z.

prevMonth: function() { 
    if (isDisabled) { 
     return; 
    } 

    month--; 
    updateDisplay(); 
} 
0

einfachste Methode ist, etwas verstecktes Feld oder JavaScript-Variable

Hidden zu verwenden:

<asp:HiddenField id="hdnValue" runat="server" value="true"/> 

<script type="text/javascript"> 
function ImageClickHandler(){ 
    var i=document.getElementById(<%=hdnValue.ClientID%>).Value; 
    //don't know if .value works because I'm very much into jQuery 

if(i=='true') //go ahead and show calendar 
else //don't show ! 
} 
</script> 

Variable:

var showCal = "<%= VARIABLE_TO_SET_IF_CAL_ENABLED%>"; 

<script type="text/javascript"> 
function ImageClickHandler(){ 
if(showCal=='true') //go ahead and show calendar 
else //don't show ! 
} 
</script> 
3

oder ohne Änderungen an Ihrem Kalender zu machen ..

<div>Click the button because I am enabled... <img id="btnSubmit" src="submitbutton.gif" onclick="Foobar(this,event);" alt="submit button" /></div> 

<p> 
<span onclick="ToggleOnclick('btnSubmit');">Click here to disable/enable the image&#39;s onclick</span> 
</p> 

<script> 
    function ToggleOnclick(elID) 
    { 
     /// <summary> 
     /// 
     /// </summary> 

     var el = document.getElementById(elID); 
     if (el.onclick) 
     { 
      // Disable the onclick 
      el._onclick = el.onclick; 
      el.onclick = null; 
      alert(el.id +'\'s .onclick has been disabled.'); 
     } 
     else //if (!(button._onclick)) 
     { 
      // Disable the onclick 
      el.onclick = el._onclick; 
      el._onclick = null; 
      alert(el.id +'\'s .onclick has been enabled.'); 
     } 
    } 

    function Foobar(el, e) 
    { 
     alert('Submitting...'); 
    } 
</script> 

Das Gold ist im ToggleOnclick. In der Tat könnten Sie verallgemeinern, dass jeder es verwendet, um Ereignisse auf fast alles zu deaktivieren/aktivieren.

+0

@ jason, es hat für mich funktioniert !!! danke – gmhk

+0

@gmhk Großartig, dass es sich noch 2 Jahre später als nützlich erwiesen hat. :) –

0

Wie bereits erwähnt, fügen Sie einfach eine Bedingung in den onclick-Handler ein.

<script type="text/javascript"> 

var _imageClickDisabled = false; 

function disableImageClick() 
{ 
    _imageClickDisabled = true; 
} 

function onImageClick() 
{ 
    if (_imageClickDisabled) 
    { 
    return; 
    } 

    // show your calendar here 
    // 
    // : : : 
} 

</script> 

<img ... onclick="onImageClick()" /> 

rufen Sie die disableImageClick() Funktion den Kalender mit zu stoppen.

0

Hallo es ist sehr, sehr spät,

Aber ich habe auch gleiche Forderung, und ich habe es behoben, indem den Bild-Tag mit Eingabeelement mit Typ als Bild zu ersetzen, ist der Nutzen dieses Elements ist es das Bild zeigen Als Eingabeelement und deaktivierte Eigenschaft können Sie das Klickereignis deaktivieren. Im Folgenden wird haben den Code I

<input type="image" src="<date icon>" 
onclick="return showCalender('txtdate','dd\mm\y');" disabled="disabled"></input> 

Beachten Sie das disabled-Attribut für Form verwandte Elemente wird nur funktionieren,

Gedanken für andere Jungs in Zukunft könnte hilfreich sein, die, verwendet.

Verwandte Themen