Javascript JQuery绑定()导致的异常行为
我使用Javascript JQuery绑定()导致的异常行为,javascript,jquery,html,Javascript,Jquery,Html,我使用jQuery将事件附加到动态创建的anchor标记,但是我得到了一个不寻常的效果,我现在将对此进行解释 首先,这是我的jquery $('#compresult').bind('click', 'a.con_add', function(e){ console.log(e); $companyName = $('#comp_staff option:selected').text(); $companyId = $('
jQuery
将事件附加到动态创建的anchor
标记,但是我得到了一个不寻常的效果,我现在将对此进行解释
首先,这是我的jquery
$('#compresult').bind('click', 'a.con_add', function(e){
console.log(e);
$companyName = $('#comp_staff option:selected').text();
$companyId = $('#comp_staff option:selected').val();
$type = 'company';
//Display Name of the Company
$('#item_name').html(" - " + $companyName);
//Update Hidden Fields of Form
$('#comp_name').val($companyName);
$('#comp_id').val($companyId);
$('#type').val('contact');
//Make AJAX request to PHP file which will generate the Tags for the Object
$('#active_tags').load('pages/ajax/get_tags.php', {'name': $companyName, 'id': $companyId, 'type': $type},function(response, status, xhr){});
});
a.con\u add
是页面首次加载时不存在的锚定标记类,这是该标记的html
:
<select style="width:300px" name="comp_staff" id="comp_staff">
<option value="0">Select Contact...</option>
<option value="25280">Person1</option>
<option value="25274">Person2</option>
<option value="162961">Person3</option>
<option value="25275">Person4</option>
<option value="139848">Person5</option>
<option value="25279">Person6</option>
</select>
<a href="#" class="con_add">Add Tag</a>
选择联系人。。。
人1
人2
人3
人4
人5
人6
奇怪的行为是,当我更改此选择菜单的值而不是单击锚定标记时,click
事件被触发。我猜事件正在绑定到包含选择菜单的整个div
非常感谢您提供的任何帮助。您正在使用.bind()
,但是,正如您理论上所说,这确实会将单击事件绑定到整个容器。只需将.bind
更改为.on
,您的事件委派就会起作用。您使用的是.bind()
,但正如您理论上所说,这会将单击事件绑定到整个容器。只需将.bind
更改为.on
,您的活动委派就可以工作。您是否尝试过使用on
而不是bind
<在jQuery 1.7中,将事件附加到元素的首选方法是“代码>打开”。我只能假设bind没有更新,这可能是回归的症状。您能告诉我们$('#compresult')在哪里吗?您的.bind语法不正确。(或者,更准确地说,您对它的使用并没有达到您认为的效果。a.con_add
被用作事件数据,而不是元素选择器。)您是否尝试过使用on
而不是bind
<在jQuery 1.7中,将事件附加到元素的首选方法是“代码>打开”。我只能假设bind没有更新,这可能是回归的症状。您能告诉我们$('#compresult')在哪里吗?您的.bind语法不正确。(或者,更准确地说,您对它的使用与您认为的不同。a.con_add
被用作事件数据,而不是元素选择器。)请注意,使用.on也会将单击事件绑定到整个容器。但是,只有当事件目标与选择器匹配时,它才会调用处理程序。↑↑↑ 是的,只是通过过滤目标元素或任何关于选择器passedYes的冒泡事件的祖先,但是我认为OP的语法是正确的,因此它应该委托给a.con_add.@BarryT.Smith。您的答案是正确的,Kevin只是让事情变得更清楚。注意,使用.on还可以将click事件绑定到整个容器。但是,只有当事件目标与选择器匹配时,它才会调用处理程序。↑↑↑ 是的,只是通过过滤目标元素或任何关于选择器passedYes的冒泡事件的祖先是的,但我认为OP的语法是正确的,因此它应该委托给a.con_add.@BarryT.Smith你的答案是正确的,Kevin只是让事情变得更清楚