jQuery on() - 如何获取正确的目标?

时间:2011-11-29 14:27:24

标签: jquery

说我有这样的事情:

<div id="myTop">
  <a href="#" data-role="button" data-theme="a">one</a>
  <a href="#" data-role="button" data-theme="a">two</a>   
  ...
</div>

我想在按钮点击上更改数据主题。我试过这个:

$('#myTop').on("click", "a", function (event) {
            $(event.target).attr('data-theme', "b");
        });

这个approch的问题在于我不确定实际点击的哪个部分有时可能是跨度和锚点。我怎样才能确保仅在标签上更改主题?

感谢您的帮助

Larsi

(编辑:删除了此问题的主题部分)

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

JS

$('#myTop').click(function() {
    $(this).attr('data-theme', 'b').trigger('create');
});

HTML

<a href="#" data-role="button" data-theme="a" id="myTop">Theme a</a>

答案 1 :(得分:0)

你可以这样做:

$('#myTop').find("a").on("click", function (event) {
            $(this).data('theme', "b");
        });

click事件只会在a标签中触发,你可以使用jQuery提供的数据方法更改数据attr。

编辑:我没有看到你的代码正确,正在进行

$('#ID').on("click", "a", function () {});
单击传递了id的容器时,

将触发事件,并且它是一个锚点,因为您传递的选择器就像一个过滤器。更多信息here