Чтобы отключить изображение - PullRequest
1 голос
/ 30 июня 2009

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

Ответы [ 5 ]

3 голосов
/ 01 июля 2009

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

<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 голосов
/ 08 августа 2011

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

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

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

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

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

0 голосов
/ 09 июля 2009

Как уже было сказано, просто добавьте условие в обработчик 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 голосов
/ 30 июня 2009

Самый простой способ - использовать скрытое поле или переменную javascript

0 голосов
/ 30 июня 2009

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

<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 - это класс с закрытыми членами , cal - это экземпляр этого класса.

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

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

    month--;
    updateDisplay();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...