Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery`on`事件处理程序:事件委派和传递自定义数据_Jquery - Fatal编程技术网

Jquery`on`事件处理程序:事件委派和传递自定义数据

Jquery`on`事件处理程序:事件委派和传递自定义数据,jquery,Jquery,我有一个通过ajax调用加载的表单,这意味着我需要使用事件委托,以便检测表单中的选择框何时被单击 我的代码如下所示: $( document ).on( "click", "form select", selectFunction ); 但是,除了利用事件委托,我还希望能够将自定义事件.data传递给on处理程序函数 所以,我希望我的代码片段如下所示 $( document ).on( "click", "form select", { foo: 'bar' }, selectFunction

我有一个通过ajax调用加载的表单,这意味着我需要使用
事件委托
,以便检测表单中的选择框何时被单击

我的代码如下所示:

$( document ).on( "click", "form select", selectFunction );
但是,除了利用
事件委托
,我还希望能够将自定义
事件.data
传递给
on
处理程序函数

所以,我希望我的代码片段如下所示

$( document ).on( "click", "form select", { foo: 'bar' }, selectFunction );
…我的处理函数的行为类似于这样

function selectFunction( event ) {
    console.log(event.data.foo); // outputs 'bar'
}
不幸的是,
event.data
返回
undefined

谢谢您的帮助。

这项工程—

$(document).on("click","#form-select", {foo: "bar"},SubmitForm);

function SubmitForm(event)
{ 
   alert(event.data.foo); 
}

我认为问题出在您使用的选择器-“表单选择”或其他完全不同的选项上。

对我来说很好:(嗯,
单击
不起作用,所以我使用了
焦点
)。因此,如果它不起作用,那么您就没有传递正确的值作为数据参数(或者根本没有)。为什么不这样做:$(文档)。在(“单击”,“表单选择”,selectFunction({foo:'bar');@kasperTaeymans:
selectFunction
看起来怎么样?
单击
在这里工作:(只需在红色区域内单击)函数选择函数(事件,数据){alert(data.foo)}如果这不是一个选项,您需要创建一个自定义事件。请参阅此链接,这对我很有用。这很奇怪,因为在
处理程序函数中,
console.log event
将在其数据字段中显示null。但是,
console.log event.data
将显示对象文本
{foo:'bar'}
。我怀疑这与javascript的异步性质有关。但是,我不知道发生这种情况的确切原因。@KurtMueller很高兴我能提供帮助。祝你好运!!