相关疑难解决方法(0)

事件处理程序不处理动态内容

我有一个标签A,当点击它时,它附加另一个标签B以执行点击动作B. 因此,当我点击标签B时,执行动作B. 但是,该.on方法似乎不适用于动态创建的标记B.

标签A的html和jquery如下:

<a id="address" class="add_address btn btn-inverse btn-medium pull-right push-top">Add Shipping address</a>

$('.add_address').click(function(){
    //Add another <a>
    $(document).append('<a id="address"  class="pull-right update btn btn-inverse btn-medium push-top">Update</a>');
})
Run Code Online (Sandbox Code Playgroud)

当单击标签B时,执行一些动作B. 我的jquery如下:

$('.update').on('click',function(){
  //action B
});
Run Code Online (Sandbox Code Playgroud)

我有一些非动态内容,也有类".update".在.on()上面的方法中,对于非动态内容,但不适用于动态内容.

如何使其适用于动态内容?

jquery static-content dynamic-content

246
推荐指数
2
解决办法
19万
查看次数

将click事件附加到尚未添加到DOM的JQuery对象

在将Click事件添加到JQuery对象之前,我一直遇到很多麻烦.

基本上我有我的函数返回的这个按钮,然后我将它附加到DOM.我想要的是返回具有自己的点击处理程序的按钮.我不想从DOM中选择它来附加处理程序.

我的代码是这样的:

createMyButton = function(data) {

  var button = $('<div id="my-button"></div>')
    .css({
       'display' : 'inline',
       'padding' : '0px 2px 2px 0px',
       'cursor' : 'pointer'
     }).append($('<a>').attr({
       //'href' : Share.serializeJson(data),
       'target' : '_blank',
       'rel' : 'nofollow'
     }).append($('<image src="css/images/Facebook-icon.png">').css({
       "padding-top" : "0px",
       "margin-top" : "0px",
       "margin-bottom" : "0px"
     })));

     button.click(function () {
        console.log("asdfasdf");
     });

     return button;     
}
Run Code Online (Sandbox Code Playgroud)

返回的按钮无法捕获click事件.但是,如果我这样做(在将按钮添加到DOM之后):

$('#my-button').click(function () {
    console.log("yeahhhh!!! but this doesn't work for me :(");
});
Run Code Online (Sandbox Code Playgroud)

它有效...但不适合我,不是我想要的.

它似乎与该对象尚未成为DOM的一部分有关.

哦! 顺便说一句,我正在使用OpenLayers,我正在附加按钮的DOM对象是一个OpenLayers.FramedCloud(它还不是DOM的一部分,但会触发几个事件.)

javascript jquery onclick javascript-events

165
推荐指数
5
解决办法
14万
查看次数