将click()添加到动态生成的链接

时间:2017-05-19 17:13:11

标签: javascript jquery

我正在尝试从动态生成的按钮调用函数。但是,单击链接时click()函数不起作用。无法弄清楚原因。

if ( hasCap === 'image' ) {
  caption = $(this).data('caption');
  link    = '<a href="#" style="float: right; margin-top: -10px;" class="hidecaption">Hide Caption</a>';

  return link + (caption ? caption + '<br />' : '') ;
}

  $( ".hidecaption" ).click(function() {
      alert( "target called" );
    });

2 个答案:

答案 0 :(得分:0)

你的jQuery函数是否在函数中?

$(document).ready(function{}); 

jQuery点击事件将在文档加载后触发。

答案 1 :(得分:0)

你需要一些与

相似的东西
$("EXISTING_DOM_ELEMENT_SELECTOR").on(
     "the_event", 
     "dinamic_element_selector", 
      function yourBehaviour(){
         //The code of your function goes here
      }
);

在你的情况下你会有

$(".existing-parent").on('click', '.hidecaption', myBehaviour)
function myBehaviour(){}

这大致会转换为:对于.hidecaption.existing-parent类的任何元素,添加一个将执行函数myBehaviour() 的单击事件侦听器。为了便于阅读,myBehaviour在另一个函数中被分开。

.existingParent与动态元素的achor类似。