2009-06-30 3 views
1

У меня есть html-изображение. В своем событии onClick я написал код, чтобы показать календарь. Я хочу отключить это изображение, а это значит, что я не должен был бы нажимать на это изображение, но изображение должно быть видимым. Я хочу отключить событие изображения onclick. Может ли кто-нибудь помочь?Чтобы отключить картинку

+0

Как будет отображаться календарь? –

+1

Чтобы уточнить: вы хотите отключить метод onclick для изображения. Верный? – glasnt

ответ

0

Я предполагаю, что у вас есть что-то вроде:

<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 класс с private members, cal является экземпляром этого класса.

Все, что вам нужно сделать, это добавить нового участника в Calendar, который отслеживает, если ваш onclick должен быть отключен, например. isDisabled, и проверьте это в функции, которую вы вызываете в своем onclick, например.

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

    month--; 
    updateDisplay(); 
} 
0

простой способ использовать некоторые скрытые поля или переменной Javascript

скрытое:

<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

Или без внесения каких-либо изменений в календарь .. .

<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> 

Золото находится в ToggleOnclick. На самом деле вы могли бы обобщить, что любой из них использует его для отключения/включения событий практически во всем.

+0

@ jason, Это сработало для меня !!! спасибо – gmhk

+0

@gmhk Отлично, что он еще полезен 2 года спустя. :) –

0

Как уже было сказано, просто добавьте условие в обработчик onclick.

<script type="text/javascript"> 

var _imageClickDisabled = false; 

function disableImageClick() 
{ 
    _imageClickDisabled = true; 
} 

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

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

</script> 

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

Просто вызовите функцию disableImageClick(), чтобы остановить показ календаря.

0

Привет это очень очень поздно,

Но я тоже получил те же требования, и я установил его, заменив тег изображения с элементом ввода с типом как изображения, польза этого элемента является его показать изображение поскольку элемент ввода и отключенное свойство позволят вам отключить событие click. Ниже код, который я использовал

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

Имейте в виду, что, инвалидов атрибут будет работать только для связанных элементов формы

мысли могут быть полезны для других парней в будущем.

Смежные вопросы