span с событием onclick внутри тега

19

Пример кода

<a href="page" style="text-decoration:none;display:block;">
    <span onclick="hide()">Hide me</span>
</a>

Поскольку тег a находится над пролетом, его невозможно щелкнуть. Я пытаюсь z-index , но это не работает

    
задан Ben 02.05.2012 в 13:32
источник
  • Это просто простой пример кода: D в теге есть другой материал. Я хочу скрыть отверстие –  Ben 02.05.2012 в 13:38
  • Таким образом, вы хотите скрыть диапазон при нажатии на гиперссылку. Я прав? –  user1135357 02.05.2012 в 13:38
  • noo функция hide скроет отверстие тегом. Существует цикл, который показывает 10. И я использую .closest (). FadeOut (); но я не могу нажать тег span из-за тега –  Ben 02.05.2012 в 13:41
  • дать некоторую анимацию для вашего ответа –  srini 02.05.2012 в 16:50
  • Я люблю тебя, чувак, это потрясающий вопрос. –  AmerllicA 12.11.2017 в 15:21

7 ответов

35
<a href="http://the.url.com/page.html">
    <span onclick="hide(); return false">Hide me</span>
</a>

Это самое простое решение.

    
ответ дан Mark Nijboer 14.09.2013 в 20:40
источник
  • Отлично работает. Не нужно устанавливать стиль для тега –  Ondra 01.02.2014 в 11:29
  • Любая идея не работает, если функция, которая запускается onclick, определена внутри window.onload? –  John R Perry 02.02.2017 в 02:47
  • Прекрасное решение, даже для этого не требуется event.stopPropagation (); –  AmerllicA 12.11.2017 в 15:22
10

Когда вы нажимаете hide me , запускаются как a , так и span . Поскольку страница перенаправляется на другую, вы не видите работу hide()

Вы можете увидеть это для уточнения

Ссылка

    
ответ дан Nauphal 02.05.2012 в 13:43
источник
  • Да, это проблема –  Ben 02.05.2012 в 14:10
2

Fnd ответ.

Я использую некоторые стили inorder для достижения этого.

<span 
   class="pseudolink" 
   onclick="location='https://jsfiddle.net/'">
Go TO URL
</span>

.pseudolink { 
   color:blue; 
   text-decoration:underline; 
   cursor:pointer; 
   }

Ссылка

    
ответ дан MAFAIZ 31.03.2016 в 18:41
источник
0

Ваш код в порядке, он должен выполнить функцию onClick.

Возможно, функция hide () неверна и не выполняется.

Вы получаете какие-либо ошибки в firebug?

    
ответ дан Vassilis Barzokas 02.05.2012 в 13:41
источник
  • он начинает скрывать его, но затем он меняет страницу –  Ben 02.05.2012 в 14:08
0

Я бы использовал jQuery для получения результатов, которые вы ищете. Вам не нужно было бы использовать тег привязки в этот момент, но если бы вы это сделали, это выглядело бы так:

<a href="page" style="text-decoration:none;display:block;">

<span onclick="hide()">Hide me</span>

</a>

<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.2.min.js' /
<script type='text/javascript'>
$(document).ready(function(){
     $('span').click(function(){
           $(this).hide();
     }
}
    
ответ дан Jordan 02.05.2012 в 13:43
источник
0

использовать onmouseup

попробуйте что-то вроде этого

        <html>
        <head>
        <script type="text/javascript">
        function hide(){
        document.getElementById('span_hide').style.display="none";
        }
        </script>
        </head>

        <body>
        <a href="page" style="text-decoration:none;display:block;">
        <span   onmouseup="hide()" id="span_hide">Hide me</span>
        </a>
        </body>
        </html>

EDIT:

          <html>
        <head>
        <script type="text/javascript">
        $(document).ready(function(){
         $("a").click(function () { 
         $(this).fadeTo("fast", .5).removeAttr("href"); 
        });
        });
        function hide(){
        document.getElementById('span_hide').style.display="none";
        }
        </script>
        </head>

        <body>
        <a href="page.html" style="text-decoration:none;display:block;" onclick="return false" >
        <span   onmouseup="hide()" id="span_hide">Hide me</span>
        </a>
        </body>
        </html>
    
ответ дан srini 02.05.2012 в 13:45
источник
  • Я должен быть включен, поскольку тег span для удаления сообщения –  Ben 02.05.2012 в 14:11
  • вам не нужны другие действия, только для удаления сообщения –  srini 02.05.2012 в 14:12
  • да только для удаления и скрыть сообщение о дыре со страницы –  Ben 02.05.2012 в 14:14
  • теперь проверяю мой ответ –  srini 02.05.2012 в 15:04
  • хорошо, что не будет работать, поскольку обе темы должны быть доступны для нажатия. Если пользователь нажимает на ссылку, он перенаправляет его на страницу сообщений, и если он нажмет этот интервал, чтобы удалить его. И кто-то может ошибочно навести паттерн и удалить его. И href является динамическим с идентификаторами для сообщений –  Ben 02.05.2012 в 15:10
-2

Вы можете использовать jQuery

Ссылка

    
ответ дан user1135357 02.05.2012 в 13:44
источник
  • Ссылка должна быть включена –  Ben 02.05.2012 в 14:17
  • Затем просто добавьте ссылку –  user1135357 02.05.2012 в 15:14
  • , если я отредактирую ваш код и объявлю путь в href, когда нажимается промежуток, я получаю {«error»: «Пожалуйста, используйте запрос POST»} –  Ben 02.05.2012 в 15:16
  • jsfiddle.net/2HWJ4 –  user1135357 02.05.2012 в 15:20
  • он перенаправляет меня на страницу google .. и это проблема –  Ben 02.05.2012 в 15:22
Показать остальные комментарии