0

我有以下内容:

    <li><a id="register" 
        class="access button red"
        data-action="Register" 
        title="Login"><span class="smaller">REGISTER</span></a></li>
    <li><a id="login" 
        class="access button red"
        data-action="Login" 
        title="Login"><span class="smaller">LOGIN</span></a></li>

在 jQuery 中是否有一种简单的方法可以使单击这些链接之一调用 javascript 函数并将数据操作作为参数传递。我加入了名为“access”的课程,因为我想我可以用它来挑选这两个链接,但我不确定下一步该做什么。

4

4 回答 4

2

一条线

$("a.access").click(function(){ doSomeThing($(this).attr("data-action"))  })
于 2012-04-21T05:06:13.443 回答
1

您可以使用以下示例之一,event.preventDefault();将停止导航到超链接。

$("a.access").click(function(event) {
    event.preventDefault();
    customFunction($(this).attr("data-action"));
});

或者

$("a.access").click(function(event) {
    event.preventDefault();
    customFunction($(this).data("action"));
});​
于 2012-04-21T05:13:04.277 回答
0
​$('a.access')​.click(function() {
    console.log($(this).data('action'));
});​

http://jsfiddle.net/zerkms/EWSCJ/

因此,在事件处理程序中,您可以this使用 DOM 对象或$(this)jQuery 对象。所以你可以使用.data()jQuery方法来检索data-action

于 2012-04-21T05:04:53.573 回答
0

是的,一点没错。只需执行以下操作:

var callback = function() {
  var $el = $(this);
  alert($el.data('action'));
};​

$('#login').click(callback)
于 2012-04-21T05:05:59.587 回答