我有这个JQuery点击事件:
jq("#generateButton").click({key: "hello world"}, function () {
console.dir(this);// this is the "generateButton" html element.
// jq(this) would be the jquery object of the generate button
frnConstr.setDataObject(this);
frnConstr.gameObject.state.start(frnConstr.EnteriorScreen.KEY);
});
我怎么可能将自定义数据发送到此事件,例如print {key:“hello world”}? 它有可能吗?
注意:在我自定义的工作环境中,jq()是$()或jquery()。
注意:jQuery文档说eventData可以是任何东西,这是官方文档: https://api.jquery.com/click/:)
答案 0 :(得分:3)
通常你会使用数据属性,然后用
抓住它jq("#generateButton").on("click",function() {
var custom = $(this).data("custom");
});
使用
<button id="generateButton" data-custom="hello world">
您指的是在绑定时间发送的event.data
jq("#generateButton").on("click",{"what":"hello"}, function(event) {
var custom = $(this).data("custom");
console.log(event.data.what+" "+custom); // hello world
});
<button id="generateButton" data-custom="world">
实施例
$(function() {
$("#generateButton1").on("click", function() {
var custom = $(this).data("custom");
console.log(custom);
});
$("#generateButton2").on("click", {
what: "goodbye"
}, function(event) { // needed here
var custom = $(this).data("custom");
console.log(event.data.what + " " + custom); // hello world
});
$("#generateButton3").on("click", function() {
var formdata = $(this).closest("form").serialize();
console.log(formdata);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button type="button" id="generateButton1" data-custom="hello world">Hello world</button>
<button type="button" id="generateButton2" data-custom="world">Goodbye world</button>
<hr/>
Serializing:
<form>
<input type="text" name="field1" value="f1" /><br/>
<input type="text" name="field2" value="f2" /><br/>
<button type="button" id="generateButton3">Click to serialize</button>
</form>
答案 1 :(得分:1)
你不能不知道如何在你的html中拥有一个数据属性,并在点击该元素时获得该属性。
例如:
<button id="generateButton" data-key="something"/>
jq("#generateButton").click(function () {
console.log($(this).data('key')); // something
.....
});
答案 2 :(得分:1)
首先,确保您参考jquery版本1.4.3或更高版本。
jq("#generateButton").click({key: "hello world"}, function (event) {
var key=event.data.key;
//do something with the key value
});
可以在event.data对象中访问此eventData签名中传递的所有数据。