0

//在我的javascript中

$('.search_fields').live('click',"#gomsearch",function()
{
    alert('Go button clicked');
});

// 通过ajax加载的内容

<div class="search_fields">
   <select id="sortBasedOn">
      <option value="value1">value1</option>
      <option value="value2">value2</option>
      <option value="value2">value3</option>
   </select>
   <input type="button" id="gomsearch" value="Go"/>
</div>

我的问题是即使我单击选择框也会调用警报功能。我不知道要弄清楚。帮我

4

6 回答 6

4

您应该使用on()方法live()弃用,因为@Arun P Johny 注意到您必须使用文档范围,后跟选择器:http: //jsfiddle.net/VyKPf/1/

$(document).on('click',".search_fields #gomsearch",function(){
    alert('Go button clicked');
});
于 2013-07-09T09:17:07.490 回答
1

.live()自 jQuery 1.7 起已弃用。

根据您的 jQuery 版本使用.on()或使用。是首选。.delegate().on()

于 2013-07-09T09:19:35.913 回答
1

您需要将事件处理程序添加到文档(或search_fields添加元素的容器),因为.search_fields元素也是动态加载的

$(document).on('click',"#gomsearch",function(){
    alert('Go button clicked');
});
于 2013-07-09T09:22:40.260 回答
0
$('#gomsearch').click(function(){
   alert('Go button clicked');
}):

在按钮 ID 上使用点击功能!

于 2013-07-09T09:21:09.937 回答
0

啊,我认为问题在于按钮已加载,所以在成功的 ajax 中使用它:

$('.search_fields').on('click',"#gomsearch",function(){
    alert('Go button clicked');
});
于 2013-07-09T09:22:58.767 回答
0

您应该使用已弃用的.on()方法。.live()

$(document).on('click',"#gomsearch",function(){
    alert('Go button clicked');
});

此外,您的语法 for.live()是错误的。

$(parent).live(child-to-bind, event, handler) //would have worked.
于 2013-07-09T09:23:35.547 回答