Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Javascript 在身体上使用触发器_Javascript_Jquery_Wordpress - Fatal编程技术网

Javascript 在身体上使用触发器

Javascript 在身体上使用触发器,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我在插件JS文件中设置了一个变量,在我自己的自定义JS文件中,我调用了相同的事件来支持开发人员的工作 问题是我需要访问插件javascript事件中的变量集。目前在插件JS中设置如下: $('#link').live('click', function() { var test = 123456; var another = 'string'; $('body').trigger({ 'test' : test, 'another' : another });

我在插件JS文件中设置了一个变量,在我自己的自定义JS文件中,我调用了相同的事件来支持开发人员的工作

问题是我需要访问插件javascript事件中的变量集。目前在插件JS中设置如下:

$('#link').live('click', function() {
  var test = 123456;
  var another = 'string';

  $('body').trigger({
    'test' : test,
    'another' : another
  });
});
现在,在我自己的自定义JS中,我在
#链接上调用相同的方法来添加我自己的代码以执行

$('#link').on('click', function(){
  // I need to access the another variable set previously
});
我没有真正理解的是当jquery文档说触发器方法正在向事件处理程序传递参数时。这到底是什么意思?如何访问前一事件中的变量集


一如既往地提前感谢。

通常,您会向事件传递额外的参数,如果它有自定义事件,您可以访问:

$('#link').live('click', function() {
    var test = 123456;
    var another = 'string';
    $('body').trigger('HIT',{
        'test': test,
        'another': another
    });
});

$('body').on('HIT', function(e,param1) {
    $('#hitter').append('hi');
    $('#hitter').append(param1.test);
});

在此命中事件之后,#hitter的值将附加“hi123456”。要访问“另一个”,只需使用param1.other,它返回“string”。

您可以使用.trigger()来执行此操作,触发某个事件。传递.trigger()一个字符串,告诉它要触发哪个事件(例如:“click”或“mouseenter”)或实际的“event”对象。在这里,它传递了一个具有两个属性“test”和“other”的对象。那没用。此外,访问插件变量几乎从来都不是一个好主意。如果您告诉我们您实际想要做什么,我们可能会提供更好的解决方案。在插件中的这个特定事件中,作者执行.get()解析JSON,并设置一些变量。我想在我的事件中访问那些我也想同时触发的变量,所以他指示我,这就是为什么他包括(‘body’)触发器。我想我只是不知道如何使用它。我基本上是在尝试避免重复的.get()请求,只访问插件在第一个事件中返回的数据。我想我是弄错了?你能提供插件的链接吗?没有共享javascript的权限吗?一旦你翻开你的一页,它将是活的世界,没有这样的“秘密”脚本。无论如何,您的问题的答案是“在大多数情况下,不,您不能访问事件处理程序中的任何内容,除非有人允许您连接到它”。这就是插件的来源所在,如果作者通过返回对象引用或允许回调暴露了任何钩子,那么您就可以进入插件并做您想做的事情。你更可能需要编辑一个写得不好的插件。对不起,这似乎很管用。谢谢我发现我可以像您一样使用自定义事件,并将plugins trigger方法中的每个项添加为params,以便在新方法中再次访问它们。