0

我正在尝试获取 clicked 的值,<a>因为我<a>的 s 是由 ajax 动态插入的,所以我被迫使用.on() 并尝试按照建议完成我的工作,.on()但在简单示例中遇到困难并且未能传递我的 clicked 参数<a>

期望的输出

click art -> alert with hello 5
click entertainment -> alert with hello 5

当前代码

function myHandler(event) {
alert(event.data.foo+event.data.value);
}

$(document).on("click","a.suggest",{foo: "hello "}, myHandler);

//我试过 put $this 但它不起作用并返回整个页面的内容而不是点击的内容

这是我动态生成的html代码

<ul class="stags_btn" >
<li><a class="suggest"value="5">art</a></li>
<li><a class="suggest"value="3">entertainment</a></li>
<li><a class="suggest"value="23">supplier</a></li>
<li><a class="suggest"value="81">flyer</a></li>
<li><a class="suggest"value="32">company</a></li>
<li><a class="suggest"value="2">digital</a></li>
</ul>

这是我的 findle 我正在使用最新的 jquery (1.10.1) http://jsfiddle.net/SvJQu/1/

4

2 回答 2

2

你快到了,你可以$(this)在你的内部使用myHandler()

function myHandler(event) {
    alert(event.data.foo+$(this).attr('value'));
}

$(document).on("click","a.suggest",{foo: "hello"}, myHandler);

但只是一个旁注:value您尝试使用的 不支持<a>作为标准属性,它将被视为自定义属性,并且自定义属性通常以data-.

在这里看到这个小提琴:小提琴!

于 2013-06-11T05:59:34.987 回答
1

FOA value attribute is not supported in <a> tag, you can use alt instead of value.

you can get the alt value using attr('alt') and

this.text will return whatever the text between the <a>...</a>

HTML

<ul class="stags_btn" >
<li><a class="suggest" alt="5" >art</a></li>
<li><a class="suggest" alt="3">entertainment</a></li>
<li><a class="suggest" alt="23">supplier</a></li>
<li><a class="suggest" alt="81">flyer</a></li>
<li><a class="suggest" alt="32">company</a></li> 
<li><a class="suggest" alt="2">digital</a></li>
</ul>

jQuery

function myHandler(event) {
        alert(event.data.foo);
        alert($(this).attr('alt'));
        alert(this.text);
}

$(document).on("click","a.suggest",{foo: "hello"}, myHandler);

working DEMO

于 2013-06-11T06:06:05.543 回答