2013-08-19 2 views
-2

Inner нажмите не работает .html и JS скрипты ниже .I используются Click событие, а затем live событие для внутреннего элемента мыши, но его не работаетJQuery: Inner Нажмите не работает

<head runat="server"> 
    <title></title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <a style="cursor: pointer" id="abc" target="_blank" href="http://www.google.com"></a> 
    <a style="cursor: pointer"id="myLink">Click ME -Open google on new Tab</a> 
    <script type="text/javascript"> 

     $('#myLink').click(function() { 


      $('#abc').click(); 

     }); 
    </script> 
    </form> 
</body> 
+1

, что вы пытаетесь сделать.? –

+0

live() устарел и удален, но все, что вы действительно делаете, - это предотвращение нажатия, чего вы ожидаете? – adeneo

ответ

1

Вы используя jquery 1.8.

В отношении jQuery 1.7 метод .live() устарел. Используйте .on() для присоединения обработчиков событий. Пользователи более старых версий jQuery должны использовать .delegate() в предпочтении .live().

Refer here.

$(document).on('event', 'selector', function() {}); заменяет .live().

$('selector').on('event', 'selector', function() {}); заменяет .delegate().

$('selector').on('event', function() {}); заменяет .bind().

Но,

Еще чего вы пытаетесь сделать?

$('#abc').on('click', function (event) { 
    event.preventDefault(); 
}); 

Если вы хотите, чтобы обнаружить щелчок на нескольких идентификаторов,

$('#abc, #myLink').on('click',....... 

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

+0

$ ('# abc'). On ('click', function (event) { event.preventDefault(); }); – Shailesh

+0

@Shailesh Да, это должно сработать. . –

+0

Я также попытался <тип скрипта = "текст/JavaScript"> $ ('# MyLink') нажмите (функция() {. $ ('# ABC') нажмите(); }); но не работает – Shailesh

1

Оба click и live присоединить обработчик событий к элементу, так что ваш код просто назначить новый обработчик щелчка, чтобы #abc каждый раз #myLink щелчок.

EDIT после Edits Op в:

Я не совсем уверен, что ваш пытаются сделать, но это выглядит, как вы хотите перейти по ссылке для #abc когда #myLink нажата? Код, который у вас есть сейчас, сделает это.

#myLink не имеет атрибута href и поэтому нет щелчка, чтобы следовать.

Если вы хотите, чтобы иметь возможность нажать #myLink следовать #abc «s HREF, но не быть в состоянии нажать на #abc непосредственно, вы можете сделать следующее:

$('#abc').on('click', function() { 
    event.preventDefault(); 
}); 

$('#myLink').on('click', function() { 
    var abc = $('#abc'), 
     that = $(this); 

    that.attr({ 
     "href": abc.attr('href'), 
     "target": "_blank" 
    }).click(); 
}); 

Working Demo

Кроме того, функция live была устарела в jQuery 1.7 и удалена в jQuery 1.9. Вместо этого вы должны использовать on().

1

Он уже ответил, жить() является устаревшим, но это работает как шарм:

<script type="text/javascript"> 

    $('#myLink').on("click", function() { 
     $('#abc')[0].click(); 
    }); 
</script> 
+0

+1, это было хорошо. –

1

Ну я понял позже, что вы пытаетесь сделать,

Нажмите просто вызывает щелчок событие/события не действительное действие «goto-the-links-href».

Вы должны написать свой собственный обработчик, а затем ваш $('#myAnchor').trigger('click'); будет работать ...

$("#myLink").click(function(event) 
{ 
    var link = $(this); 
    var target = $('#abc').attr("target"); 

    if($.trim(target).length > 0) 
    { 
    window.open($('#abc').attr("href"), target); 
    } 
    else 
    { 
    window.location = $('#abc').attr("href"); 
    } 

    event.preventDefault(); 
}); 

ИЛИ JavaScript,

window.location = document.getElementById('myAnchor').href 

 Смежные вопросы

  • Нет связанных вопросов^_^