Abrir nueva ventana con action dentro de <li>

Este menú funciona muy bien, abre las páginas dentro de la misma ventana, pero no me deja abrir en una nueva ventana.

Lo he intentado ya de varias maneras pero nada pero no logro abrir una nueva ventana.

Este es mi código:














Archivo cmenu.css

.menu{
    list-style: none;

}
.selected{
    background-color: #EFF8FF;
    z-index:1;
    position:absolute;
    height:150px;
    width: 128px;
    border-radius:5px;
    border: 1px solid #5DA9D1;
    display:none;
    text-align: center;
    border:1px solid #5DA9D1;
}
.selected label{
    font-weight: bold;
    font-family: Arial;
    font-size: 11px;
    color:#4C43F9;
    position:relative;
    top:128px;

}
.menu li{
    /* position:relative; */
    float:left;
    height:128px;
    width:128px;
    cursor: pointer;
    border-radius:5px;
}
.menu li img{
    position:absolute;
    z-index:10;
}
.container{
    background-color: white;
    margin:0 auto;
    width: 960px;
}

Archivo jquery.cmenu.js

(function($){
    $.fn.cmenu=function(){
     return  this.each(function(){
         var cmenu=$(this);
         var menuItems=cmenu.find('li');
         menuItems.bind('mouseover',function(event){
                    var prevDiv=$(this).find('.selected');
                    if (prevDiv.size()==1){
                            prevDiv.show();
                        }
                        else{
                            var div= $('
'); var label= $('

Y por último el archivo jquery-1.4.2.min.js este lo puedes descargar de https://blog.jquery.com/2010/02/19/jquery-142-released/ porque esta muy extenso.

2
задан 29.08.2016, 18:02
2 ответа

Страницы открываются в том же окне, потому что в jquery.cmenu.js у тебя есть это:

var action = $(this).parent().attr('action');
location.href=action;

Если ты хочешь, чтобы он открылся в новом окне, ты мог бы делать что-то как это:

var action = $(this).parent().attr('action');
window.open(action);

Редактирование начиная с твоих комментариев в этом ответе.

Чтобы изменять код, и что какие-то ссылки открылись в том же окне и других в новой продаже / закладке, что ты можешь делать, состоит в том, чтобы добавлять новый признак в li что определил "цель" (target) li. Для этого ты можешь использовать data-atributos (и уже шага обновлять action и менять это в data-action для того, чтобы код был действительным.

Идея состояла бы в том, чтобы делать что-то как это в HTML:

<ul class="menu">
    <li data-target="_new" data-action="index.php" label="Inicio">
        <img src="images/index.png" />
    </li>
    <li data-target="_new" data-action="nuevo.php" label="Nuevo Registro">
        <img src="images/nuevo.png" />
    </li>
    <li data-target="_self" data-action="reportes.php" label="Reportes">
        <img src="images/reportes.png" />
    </li>
</ul>

И менять код в jquery.cmenu.js на эту часть:

cmenu.find('img').bind('click',function(event){
   var action = $(this).parent().attr('data-action');
   var target = $(this).parent().attr('data-target');
   if (target == "_new") {
       window.open(action);
   } else {
       location.href=action;
   }
});

Это, что он сделает, ты состоит в том, чтобы быть позволено определять страницу, которую нужно соединять (с data-action) и метод (с data-target). В ссылке первых двух изображений списка он откроется в новом окне / закладке, в то время как последняя откроется в том же окне.

1
ответ дан 24.11.2019, 13:33
  • 1
    Это вызывать и # 237; для чего все страницы открылись в новых окнах? потому что моя дилемма состоит в том, что я требую не всех выборов, чтобы они открыли себе туз и # 237; но на самом деле очень хорошо, что ты комментируешь мне, не он hab и # 237; в захотевший двинуть в этот файл, из-за которого не quer и # 237; чтобы начинать терять это. Я буду проверять это и буду комментировать тебе, что я следую, большое спасибо. –  Stravos77 29.08.2016, 17:24
  • 2
    Действительно, открой все выборы в новых окнах, хотя я думаю, что я могу осуществлять это только в неких секциях, на самом деле большое спасибо, они были много помощи, привета и благословения. –  Stravos77 29.08.2016, 17:28
  • 3
    Podr и # 237; схвати изменять c и # 243; я говорю немного м и # 225; s для того, чтобы он был v и # 225; lido и смоги делать то, что ты хочешь. Оставь и я издаю ответ в секунде –  Alvaro Montoro♦ 29.08.2016, 17:34
  • 4
    в okas, будь хорошо, большое спасибо. –  Stravos77 29.08.2016, 17:41
  • 5
    @Stravos77 actualic и # 233; ответ. Пру и # 233; пуля и скажи мне, ты функционирует ли оно. Привет –  Alvaro Montoro♦ 29.08.2016, 17:43

Вместо action в tag <li> он использует гиперсвязь <a>

<ul class="menu">
  <li>
    <a href="http://www.google.com" target="_blank">
      <img src="images/index.png" />
    </a>
  </li>
  <li>
    <a href="http://es.stackoverflow.com/" target="_blank">
      <img src="images/nuevo.png" />
    </a>
  </li>
  <li>
    <a href="reportes.php" target="_blank">Reportes
      <img src="images/reportes.png" />
    </a>
  </li>                     
</ul>

В признаке href ты размещаешь url, в который ты хочешь пойти, и в признаке target ты размещаешь, где ты хочешь, чтобы открылась ссылка, в этом случае он размещается _blank для того, чтобы он открылся в новости pestaГ±a.

4
ответ дан 24.11.2019, 13:33
  • 1
    Привет, хороший d и # 237; в, я благодарен за Ваши комментарии, забудьте поместить эту часть кода, который javascript, я присоединил недостающий рукописный шрифт в первоначальное сообщение. Именно из-за этого функционирует action, и чего я не могу использовать признак href, на самом деле я попробовал все, но без ожидаемого результата. –  Stravos77 29.08.2016, 16:17
  • 2
    @JuanPinz и # 243; n, Но сейчас, если нажимается в изображении не происходить и # 237; ни во что, в то время как раньше s и # 237; выполнять и # 237; в acci и # 243; n, с чем результат не быть и # 237; в сходный в обоих случаях (хотя я не осознаю очень, как функционирует все это target в li и - возможно, что я ошибаюсь) –  Alvaro Montoro♦ 29.08.2016, 16:21
  • 3
    ЕСЛИ хотят, что изображение было гиперссылкой, размести ее внутри tag <a>, сейчас я издаю ответ. Хотя OP издал Ваш вопрос сегодняшний день, я также не понимал использование action в tag <li>. –  Juan Pinzón 29.08.2016, 16:24
  • 4
    Я попробовал размещать < a> и реализуй funci и # 243; n, а именно, открывается в новом окне Веб, которого я требую, но страница, в которой я нахожусь, старается открывать другой Веб и помечает ошибку и то, что я хочу, состоит в том, чтобы мне открылось соединение в новом окне, но чтобы он не двинул страницу, где я, я существую там, где я не нахожу, как размещение этого. –  Stravos77 29.08.2016, 16:53
  • 5
    @Stravos77 Размести весь твой код javascript, до настоящего времени не остается совсем ясным, что ты делаешь, что он делает $('.menu').cmenu();? смоги быть что ах и # 237; est и # 233; s пересылая настоящую страницу в другую. –  Juan Pinzón 29.08.2016, 16:58

Теги

Похожие вопросы