Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery绑定()导致的异常行为_Javascript_Jquery_Html - Fatal编程技术网

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只是让事情变得更清楚