0

我正在使用Google Place 自动填充

当我在自动完成文本框中搜索任何东西时,谷歌会在我的 html 中附加一些 div,

<div class="pac-container" style="position: absolute; z-index: 1000; width: 134px; left: 885px; top: 412px; display: none;">
    <div class="pac-item remove">This is me </div>
  <div class="pac-item"><b>A</b>ustralia</div>
  <div class="pac-item"><b>A</b>bbas Town, Karachi, Sind, Pakistan</div>
  <div class="pac-item"><b>A</b>ustria</div>
  <div class="pac-item"><b>A</b>rgentina</div><div class="pac-item"><b>A</b>rizona</div></div>

现在您可以注意到第一个子离子pac-container与其他子离子不同,我出于某种目的动态添加了该 div。现在,如果我想将事件绑定到该 div,那么我将无法工作。

这就是我在做什么

$('.remove').live('click', function () {
   console.log("working");
});

提前致谢 。 更新

我想你们误解了我,如果我把我的动态 div 放到任何其他地方除了pac-container,那么它可以工作,但是当我把我的 div 放进去时pac-container它就不起作用了,我尝试了几乎每个人的解决方案,但没有一个工作。
希望现在你们理解这个场景。谢谢

更新 2

这是我上传作品的链接

4

5 回答 5

1

您没有提及您使用的是哪个版本的 jquery,但截至jquery 1.7 live目前已被弃用on,因此您可以live用这个替换您的绑定:

 $('.pack-container').on('click', '.remove', function(){
     console.log("working");
  });

如果pack-container也是动态创建的元素,那么您需要将以上内容修改为:

 $(document).on('click', '.remove', function(){
     console.log("working");
  });

官方文档在这里http://api.jquery.com/on/

于 2013-05-27T08:26:50.867 回答
0
$(document).on('click', '.remove', function () {
   console.log("working");
});
于 2013-05-27T08:27:27.383 回答
0
$(document).on('click','.remove', function () {
   //Your code
});

您应该使用.on. 顺便说一句.live已经过时了。而是使用.on方法。问题是动态添加的元素在页面加载时无法将事件绑定到它们。因此发生错误。尝试将事件绑定到您的情况下的专利可能是另一个 div 或者document会很好。

阅读更多

直接与委托 - jQuery .on()

于 2013-05-27T08:29:57.530 回答
0

我已经尝试过您的代码正常工作。我认为您正在 dom 就绪功能中执行此单击功能。如果您尝试在 dom 就绪中为动态元素单击功能意味着它不会工作..

检查您在 jsfiddle http://jsfiddle.net/mNq5X/中的代码

   <div class="pac-container">
   <div class="pac-item remove">This is me </div>
   <div class="pac-item"><b>A</b>ustralia</div>
   <div class="pac-item"><b>A</b>bbas Town, Karachi, Sind, Pakistan</div>
   <div class="pac-item"><b>A</b>ustria</div>
   <div class="pac-item"><b>A</b>rgentina</div><div class="pac-item"><b>A</b>rizona</div>     
  </div>

js

$('.remove').live('click', function () {
  console.log("working");
});

所以你的解决方案是在添加下面的 div 之后添加上面的点击功能

          <div class="pac-item remove">This is me </div>
于 2013-05-27T08:36:43.393 回答
0

由于您的 div 是动态附加的,我认为您的点击事件代码应该放在 div 附加之后。否则 $('.remove') 将返回 'null',您的点击事件将不起作用。

于 2013-05-27T10:06:18.670 回答