0

我在下面有这段代码,我想做的是在我的按钮上添加一个 onclick 事件来运行 ShowDetails 函数,我可以看到属性已经添加,但是当我点击链接时,没有任何反应,我期待看到我的警报。

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

2 回答 2

2

变化

  1. 您可以组合 dom 就绪处理程序和 IIFE,如下所示
  2. 而不是使用内联点击处理程序使用.click()来注册处理程序

尝试

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

为什么它不起作用:因为您使用内联事件处理程序,所以 js 引擎正在ShowDetails全局范围(window)中寻找方法,但您将该方法创建为 dom 就绪处理程序中的闭包方法

于 2013-11-08T07:12:01.900 回答
0

尝试这个:

$(document).ready(function(){  
function ShowDetails(){  
alert('hjhjkhjkh');  
}  
$('a.woocommerce-main-image').attr("href", "#");  
$('a.woocommerce-main-image').click(function(){  
ShowDetails();  
});  
});  
于 2013-11-08T07:22:05.313 回答