$(#id).on()不使用动态创建的内容

时间:2016-07-04 09:24:54

标签: javascript jquery

我试图让脚本轻松创建基本pop_up但是当我尝试将动作绑定到我创建的元素时,我遇到了问题。

这里是代码:

button.prototype.init_action = function()
{
 var i = 0;
 if (this._triger.length != this._action.length)
 {
     console.log('Il doit y avoir autant de triger que d\'action');
     return;
 }
 var name = '#' + this.prototype._idConteneur+'_'+this.prototype._name;
 while (i < this._triger.length)
 {
     console.log($(name).on(this._triger[i], this._action[i]));
     i++;
 }
}

Button是一个伪类。它来自另一个对象调用windowObject。

this._triger是一个对我要绑定的动作进行争论的数组。

这里:

_triger = ['click']

_action包含我想要绑定的函数。

这里:

_action[0] = function(){console.log('HI!')}

代码工作得很好,但唯一的问题是.on()似乎什么都不做。 当我点击创建的按钮时,没有任何反应。 如果不是调用init_action(),我在控制台中执行相同的代码,它可以工作 (基本上:

$("#button").on(_triger[0], _action[0])

)它的工作非常好。

有什么想法吗?

ps:我尝试过使用.bind()而不是.on()而且没有任何改变

3 个答案:

答案 0 :(得分:1)

请改用:http://api.jquery.com/on/

$("body").on("event","#id",function(){
   ...
}

答案 1 :(得分:1)

使用$(document).on("click")事件处理动态创建内容的处理点击事件:

$(document).on("click","#id",function(){
   ...
}

答案 2 :(得分:0)

试试这个

   $('#button').OnClick(function(){
    });

如果您正在调用Click事件