Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Переход по ссылке при клике на id блока (https://javascript.ru/forum/css-html/74510-perekhod-po-ssylke-pri-klike-na-id-bloka.html)

artemii 18.07.2018 14:59

Цитата:

Сообщение от Dilettante_Pro (Сообщение 490150)
Для этого достаточно вызвать событие click на вложенной в блок ссылке.

Как это реализовать?

Dilettante_Pro 18.07.2018 15:30

<style>
div.cont {
        width:60px;
       background:gray;
       border:1px solid black;}
</style>
<div class="cont" id = "idglub1">
   <div>idglub1</div>
   <div>
      <a href="#">Ссылка1</a>
   </div>
</div>
<div class="cont" id = "idglub2">
   <div>idglub2</div>
   <div>
      <a href="#">Ссылка2</a>
   </div>
</div>
<div  class="cont" id = "idglub3">
   <div>idglub3</div>
   <div>
      <a href="#">Ссылка3</a>
   </div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>

 $("div[id*=idglub]").on('click', function(){
      $(this).find('a').trigger('click');
 });

 $("a").on('click', function(e){
        e.preventDefault();
        e.stopPropagation();
       alert(this.textContent);
  
  });
</script>


Вам из этого примера нужны только строки 28-30

И уберите все лишнее, что вы еще, мне кажется, где-то вписали.

artemii 18.07.2018 16:52

Цитата:

Сообщение от Dilettante_Pro (Сообщение 490153)
<style>
div.cont {
        width:60px;
       background:gray;
       border:1px solid black;}
</style>
<div class="cont" id = "idglub1">
   <div>idglub1</div>
   <div>
      <a href="#">Ссылка1</a>
   </div>
</div>
<div class="cont" id = "idglub2">
   <div>idglub2</div>
   <div>
      <a href="#">Ссылка2</a>
   </div>
</div>
<div  class="cont" id = "idglub3">
   <div>idglub3</div>
   <div>
      <a href="#">Ссылка3</a>
   </div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>

 $("div[id*=idglub]").on('click', function(){
      $(this).find('a').trigger('click');
 });

 $("a").on('click', function(e){
        e.preventDefault();
        e.stopPropagation();
       alert(this.textContent);
  
  });
</script>


Вам из этого примера нужны только строки 28-30

И уберите все лишнее, что вы еще, мне кажется, где-то вписали.

Удалил все лишнее, вставил ваш скрипт (нужные строки) , в результате ничего...

artemii 18.07.2018 16:54

Цитата:

Сообщение от Dilettante_Pro (Сообщение 490144)
artemii,:cray:
Вы прямо так и вставили?
<script type="text/javascript">
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"
ar refer = ['Ссылка1','Ссылка2','Ссылка3'];
 $("div[id*=idglub]").on('click', function(){
     var idx = +this.id.replace(/\D+/g,"") - 1;
     alert(refer[idx]);
 });</script>

еще и с ошибками - кусок от загрузки jQuery, ar refer

Поздравляю!
Я ведь у вас неоднократно спрашивал насчет ссылок.

И вообще - зачем это нужно?
Там и так все нормально работает по ссылкам, заложенным в блоки.

Можете подсказать на что изменить ar refer чтобы все работало?

Dilettante_Pro 18.07.2018 16:55

artemii,
Можно посмотреть результат?
По прежней ссылке осталось все по-старому.

Dilettante_Pro 18.07.2018 17:00

artemii,
Цитата:

Сообщение от artemii
Можете подсказать на что изменить ar refer чтобы все работало?

Этот кусок надо целиком удалить и вставить вместо него строки 28-30 из последнего примера.
Также удалить
var refer = ['https://zaogss.ru/bolshaya-pochtovaya/','https://zaogss.ru/nagatinskaya/','https://zaogss.ru/stahanovskaya/'];
 $("div[id*=idglub]").on('click', function(){
     var idx = +this.id.replace(/D+/g,"") - 1;
document.location.href = refer[idx];
 });

(крутил этот скрипт на вашем сайте в консоли - почему-то не срабатывает this.id.replace(/D+/g,""), не выделяет цифры, возвращает целиком id)

artemii 18.07.2018 17:15

Цитата:

Сообщение от Dilettante_Pro (Сообщение 490144)
artemii,:cray:
Вы прямо так и вставили?
<script type="text/javascript">
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"
ar refer = ['Ссылка1','Ссылка2','Ссылка3'];
 $("div[id*=idglub]").on('click', function(){
     var idx = +this.id.replace(/\D+/g,"") - 1;
     alert(refer[idx]);
 });</script>

еще и с ошибками - кусок от загрузки jQuery, ar refer

Поздравляю!
Я ведь у вас неоднократно спрашивал насчет ссылок.

И вообще - зачем это нужно?
Там и так все нормально работает по ссылкам, заложенным в блоки.

Цитата:

Сообщение от Dilettante_Pro (Сообщение 490163)
artemii,
Можно посмотреть результат?
По прежней ссылке осталось все по-старому.

https://vk.cc/8hUsXX.
Вот тут теперь
Может быть проблема в самом ВП?

artemii 18.07.2018 17:16

Может быть есть другой способ сделать кликабельным весь блок?
При условии что это ВП и нет доступа к голому хтмл

Dilettante_Pro 18.07.2018 17:19

artemii,
Насчет предыдущей версии - вы неправильно ввели this.id.replace(/D+/g,"")
Нужно this.id.replace(/\D+/g,"")

И чтобы не было лишнего мусора
Новый вариант сейчас посмотрю

artemii 18.07.2018 17:25

ВП почему то убирает слэш вот тут (/D+/g,""), хотя все вставляю правильно


Часовой пояс GMT +3, время: 20:51.