即使我点击了其他一些事件,也会执行onclick功能

时间:2013-07-09 09:15:12

标签: javascript jquery

//在我的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>

我的问题是,即使我点击了选择框,也会调用提醒功能。我不知道锄头搞清楚。帮助我

6 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

自jQuery 1.7起,

.live()已弃用。

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

$('#gomsearch').click(function(){
   alert('Go button clicked');
}):

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

您应该使用.on()方法,因为.live()已被弃用。

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

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

$(parent).live(child-to-bind, event, handler) //would have worked.