Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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 如何为我自己的函数迭代的每个元素绑定一个函数?_Jquery_Html - Fatal编程技术网

Jquery 如何为我自己的函数迭代的每个元素绑定一个函数?

Jquery 如何为我自己的函数迭代的每个元素绑定一个函数?,jquery,html,Jquery,Html,基本上,如果这是我的代码: jQuery.fn.createSelector = function(){ return this.hide() .after('<div class="newElement"></div>'); // bind'em ! $(".newElement").click(function(){ alert('test'); }); }; jQuery.fn.createSelector=functio

基本上,如果这是我的代码:

jQuery.fn.createSelector = function(){
   return this.hide()
   .after('<div class="newElement"></div>');
   // bind'em !
   $(".newElement").click(function(){
      alert('test');
   });
};
jQuery.fn.createSelector=function(){
返回这个。hide()
.在('')之后;
//把他们绑起来!
$(“.newElement”)。单击(函数(){
警报(“测试”);
});
};
函数返回元素(将其插入HTML),但不绑定该元素上的单击事件。我需要在我的函数插入的每个元素上绑定各种事件,但我不知道如何绑定:(谷歌也没有真正的帮助


提前感谢!

在调用
之前,您的函数正在添加新元素,然后立即返回。单击()
,因此处理程序永远不会绑定

在绑定到新元素后,返回调用的元素
.createSelector()

jQuery.fn.createSelector = function() {
   this.hide().after('<div class="newElement"></div>');

   $(".newElement").click(function() {
      alert('test');
   });

   return this;
};
jQuery.fn.createSelector=function(){
this.hide()在(“”)之后;
$(“.newElement”)。单击(函数(){
警报(“测试”);
});
归还这个;
};

在调用
之前,您的函数正在添加新元素,然后立即返回。单击()
,因此处理程序永远不会绑定

在绑定到新元素后,返回调用的元素
.createSelector()

jQuery.fn.createSelector = function() {
   this.hide().after('<div class="newElement"></div>');

   $(".newElement").click(function() {
      alert('test');
   });

   return this;
};
jQuery.fn.createSelector=function(){
this.hide()在(“”)之后;
$(“.newElement”)。单击(函数(){
警报(“测试”);
});
归还这个;
};

在执行绑定之前返回。只需重新排列即可:

var $newElement = $('<div class="newElement"></div>');
$newElement.click(yourFunc);
return this.hide().after($newElement);
然后您的
createSelector
主体将是:

return this.hide().after('<div class="newElement"></div>');
在(“”)之后返回this.hide();

事件会自动、被动地“绑定”到它。

在执行绑定之前,您将返回。只需重新排列,就可以得到它:

var $newElement = $('<div class="newElement"></div>');
$newElement.click(yourFunc);
return this.hide().after($newElement);
然后您的
createSelector
主体将是:

return this.hide().after('<div class="newElement"></div>');
在(“”)之后返回this.hide();

事件将自动、被动地“绑定”到它。

“win的声明性事件绑定”+1实际上,您发现了我的下一个问题,但我需要的情况正好相反。使用我的函数,我正在迭代所有
标记,并将它们替换为我自己的自定义select div。单击这些div中的每个div,我需要为每个
select
打开一个
选项列表,因此我需要将单击绑定为uniquely=select1打开列表1,select2打开列表2,等等。我不知道怎么做:(@RiMMER:有几种方法可以做到这一点(我想我理解你的意图),但解决方案非常复杂,我无法在评论中描述它们。如果你不能弄明白,它本身就有一个问题。我只想警告你,创建一个新的jQuery函数是相对高级的,除非你要做一个反复使用的扩展(完全可能)有更简单的方法来完成您所描述的。“win的声明性事件绑定”+1实际上,您发现了我的下一个问题,但我需要的情况正好相反。使用我的函数,我正在迭代所有
标记,并将它们替换为我自己的自定义select div。单击这些div中的每个div,我需要为每个
select
打开一个
选项列表,因此我需要将单击绑定为uniquely=select1打开列表1,select2打开列表2,等等。我不知道怎么做:(@RiMMER:有几种方法可以做到这一点(我想我理解你的意图),但解决方案非常复杂,我无法在评论中描述它们。如果你不能弄明白,它本身就有一个问题。我只想警告你,创建一个新的jQuery函数是相对高级的,除非你要做一个反复使用的扩展(完全可能)有更简单的方法来实现您所描述的。