1

我有很多这样的链接,具有不同的 rel 属性

<a href="#" class="buy" rel="WVSEU1Y">buy</a>

我想在点击时获取 rel 属性的值......但这段代码似乎不起作用,但萤火虫也不会在控制台中触发任何错误。我究竟做错了什么?

$("a.buy").click(function(event) {
event.preventDefault();
var msg =  $(this).attr('rel');
alert(msg);

});

更新:我纠正了我遇到的 html 错误。它不会阻止默认值。而且点击事件似乎不起作用。

在所有其他脚本的顶部添加代码都有效。

4

4 回答 4

1

它在这里工作正常http://jsfiddle.net/niklasvh/NFfe5/但请注意您的 HTML 中有错误,您缺少引号href=#"

确保您的代码也已包装在准备好的 DOM 中:

$(function(){
// your code
});
于 2011-07-08T07:32:29.320 回答
0

this在这种情况下绑定到全局对象。我相信这event.target将是您想要的 DOM 对象。

$("a.buy").click(function(event) {
event.preventDefault();
//here, this refers to the global object, not the a element
//unless jquery is doing some magic to bind it
//event.target at this point in execution should be the a element
var msg =  $(this).attr('rel'); 
alert(msg);

});
于 2011-07-08T07:31:14.453 回答
0

试试这个

$(document).ready(function(){

       $("a.buy").live('click',function(event) {
          event.preventDefault();
          var msg =  $(this).attr('rel');
          alert(msg);

        });   
});
于 2011-07-08T07:43:44.420 回答
0

我测试过,写是没有问题的。代码如下:

<a href="#" class="buy" rel="WVSEU1Y">buy</a>
<script type="text/javascript">
    $(function () {
        $(".buy").bind("click", function () {
            alert($(this).attr("rel"));
        });
    })
</script>
于 2011-07-08T07:48:05.303 回答