отключить клик по элементу div

Вопрос: Я пытаюсь на какое-то время попытаться отключить клик на div. Причина этого заключается в том, чтобы остановить неавторизованных пользователей от запуска событий и т.д., Которые активируются, когда пользователь нажимает на div. Из моей попытки ниже я попробовал щелчок false, но он, похоже, не работает, возможно, я не использую правильный синтаксис для отключения div? $('#content2').on('click',

Вопрос:

Я пытаюсь на какое-то время попытаться отключить клик на div.

Причина этого заключается в том, чтобы остановить неавторизованных пользователей от запуска событий и т.д., Которые активируются, когда пользователь нажимает на div. Из моей попытки ниже я попробовал щелчок false, но он, похоже, не работает, возможно, я не использую правильный синтаксис для отключения div?

$(‘#content2’).on(‘click’, false);

Обновить:

здесь приведен полный код

Посмотреть

<h2>Notifications & Updates</h2> <p id=»content2″ contenteditable»true» ></p> <button id=»save»>Save Changes</button> </div> <div id=»Section2″></div> @*Scripts go at end for the contenteditable div to load correctly*@ <script type=»text/javascript» src=»~/Scripts/jquery.js»></script> <script type=»text/javascript» src=»~/Scripts/editable.js»></script> <script type=»text/javascript» src=»~/Scripts/EditContentHome.js»></script> @if (User.Identity.Name == «WORKER») { <script type=»text/javascript» src=»~/Scripts/SecurityEditHide.js»></script> }

SecurityEditHide.JS

window.onload = function () { $(‘textarea’).prop(‘disabled’, true); $(‘#content2’).on(‘click’, false); $(‘#content2’).prop(‘contenteditable’, false); $(‘#save’).hide(); };

EditContentHome.JS

$(«#content2»).click(function () { $(«#save»).show(1000); }); $(«#save»).click(function () { $(«#save»).hide(1000); }); Лучший ответ:

+ Изменить

$(‘#content2’).on(‘click’, false);

в

$(‘#content2’).off(‘click’);

Это удаляет обработчик кликов, который вы установили в своем предыдущем сценарии. (Пример ниже).

Ваш $(‘#content2’).on(‘click’, false); не работает, потому что все, что он сделал, – это привязать второй элемент к элементу, который предотвратил действие по умолчанию и прекратил распространение. Но они не делают ничего, чтобы предотвратить использование других обработчиков для вызова того же элемента. (Существует stopImmediatePropagation, что делает, но вам действительно лучше просто удалить обработчик целиком в этом случае.)

Живой пример:

<h2>Notifications & Updates</h2> <p id=»content2″ contenteditable=»true»>Presumably some text here</p> <button id=»save»>Save Changes</button> </div> <div id=»Section2″></div> <script src=»https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js»></script> <script> // From EditContentHome.JS: $(«#content2»).click(function () { $(«#save»).show(1000); }); </script> <script> // From SecurityEditHide.JS: window.onload = function () { $(‘textarea’).prop(‘disabled’, true); $(‘#content2’).off(‘click’); // <==== Change is here $(‘#content2’).prop(‘contenteditable’, false); $(‘#save’).hide(); }; </script>Ответ №1

Естественно, что divs не являются кликабельными, за исключением того, что вы прикрепляете к ним событие onclick, однако вы можете сделать это

.enable{ //indicate your preferred color background-color: blue; cursor : pointer ; } .disable{ background-color: grey; cursor:none ; }

Затем вы можете проверить авторизацию пользователя, когда клик сделан, если разрешено применять правый CSS, используя jquery.removeClass(). AddClass (‘enable’) else jquery.removeClass(). AddClass (‘disable’).

Оцените статью
Добавить комментарий