2013-11-08 5 views
0

У меня есть этот код ниже, что я пытаюсь сделать, это добавить событие onclick к моей кнопке, чтобы запустить функцию ShowDetails, я вижу, что атрибут был добавлен, но когда я нажимаю на ссылку ничего не происходит, я ожидаю увидеть мое предупреждение.JQuery onclick не работает

(function($){ 
     $(function(){ 
       function ShowDetails(){ 
         alert('hjhjkhjkh'); 
       } 
       $('a.woocommerce-main-image').attr("href", "#"); 
       $('a.woocommerce-main-image').attr("onclick", "javascript:ShowDetails()"); 
     }); 
})(jQuery); 

ответ

2

Изменения

  1. Вы можете объединяющие Dóm готовый обработчик и IIFE, как показано ниже
  2. Вместо использования встраиваемой нажмите Обработчик использовать .click() зарегистрировать обработчик

Попробуйте

jQuery(function ($) { 
    function ShowDetails() { 
     alert('hjhjkhjkh'); 
    } 
    $('a.woocommerce-main-image').attr("href", "#").click(ShowDetails); 
}); 

Почему это не сработало: так как вы использовали встраиваемое событие обработчик JS двигатель ищет метод ShowDetails в глобальном масштабе (window), но вы создали этот метод как метод закрытия внутри йота готового обработчика

+0

Спасибо, это сработало :) – user1269625

0

Try это:

$(document).ready(function(){ 
function ShowDetails(){ 
alert('hjhjkhjkh'); 
} 
$('a.woocommerce-main-image').attr("href", "#"); 
$('a.woocommerce-main-image').click(function(){ 
ShowDetails(); 
}); 
}); 
Смежные вопросы