Javascript 将处理程序附加到';a';即使我没有';点击

Javascript 将处理程序附加到';a';即使我没有';点击,javascript,jquery,Javascript,Jquery,我有以下代码来监听点击“a”标签: $(document).ready(function () { $(document).on("click", $("#addEvent"), addEvent); }); addEvent: function () { alert("Test"); } <div style="width: 100%; text-align: right;margin-left: -8px; margin-top:-40px;"> <

我有以下代码来监听点击“a”标签:

$(document).ready(function () {
    $(document).on("click", $("#addEvent"), addEvent);
});

addEvent: function () {
   alert("Test");
}

<div style="width: 100%; text-align: right;margin-left: -8px; margin-top:-40px;">
   <a id="addEvent" href="#" >
      <span class="t-icon t-add"></span> Add item
   </a>
</div>
$(文档).ready(函数(){
$(文档)。在(“单击“,$”(“#添加事件”),添加事件);
});
addEvent:函数(){
警报(“测试”);
}
当我加载此代码所在的页面时,即使我没有单击“a”标记,页面加载后也会立即显示警告消息

什么会导致这种行为

我正在使用Firefox14和jQuery1.7

谢谢。

$(文档)。在(“单击“,$”(“添加事件”),添加事件)应为
$(文档)。在(“单击”,“添加事件”,添加事件)上
,on()
的可选选择器是一个字符串,我不太确定
addEvent
,这是实际的代码还是仅仅是片段?

$(文档)应为
$(文档)。在(“单击”,“添加事件”,添加事件)上
,可选的
.on()
选择器是一个字符串,我不太确定
addEvent
,是实际代码还是片段?

试试这个:

$("#addEvent").click(addEvent);
​$(document​).ready(function(){
    $("#addEvent").on("click", event); 
});

function event(){
    alert("Test");
}

或者简单地说:

​$(document​).ready(function(){
    $("#addEvent").click(event); 
});

function event(){
    alert("Test");
}
请尝试以下方法:

​$(document​).ready(function(){
    $("#addEvent").on("click", event); 
});

function event(){
    alert("Test");
}

或者简单地说:

​$(document​).ready(function(){
    $("#addEvent").click(event); 
});

function event(){
    alert("Test");
}

工作演示

API:

休息我希望它对事业有所帮助
:)

代码

$(document).on("click", "#addEvent", addEvent);


function addEvent() {
    alert("Test");
}
​

工作演示

API:

休息我希望它对事业有所帮助
:)

代码

$(document).on("click", "#addEvent", addEvent);


function addEvent() {
    alert("Test");
}
​

addEvent:
是否应该是
var addEvent=
??它只是看起来放错地方了,为什么不干脆在('click',addEvent')上加上$(“#addEvent”);是,
addEvent:function(){…}
是语法错误。
addEvent:
部分是一个标签,然后
function(){…}
将给出一个错误“function statement requires a name”或类似错误。(除非您只显示了某个对象定义的摘录,并且您的实际代码在
.on()
调用中使用了
someObj.addEvent
)。大家好,我忘了提到我的函数“addEvent”的语法名称:function(),因为该函数位于命名空间中@Musa找到了答案,这是因为我传递了一个jquery选择器,而不是一个字符串来定义哪个元素将处理单击事件。@UnLoCo我不想使用你说的;“$(“#addEvent”).on('click',addEvent);”因为关于我所读到的.on(),最好指定一个具有单击权限的父级。在您的情况下,这是将完成此工作的文档。如果我的元素是从根开始的,那么该元素将在整个结构中冒泡出来作为文档处理。好的,如果您认为这只是一次鼠标点击,那么这不是一个性能问题,但我尝试尽可能使用父级语法。
addEvent:
是否应该是
var addEvent=
??它只是看起来放错地方了,为什么不干脆在('click',addEvent')上加上$(“#addEvent”);是,
addEvent:function(){…}
是语法错误。
addEvent:
部分是一个标签,然后
function(){…}
将给出一个错误“function statement requires a name”或类似错误。(除非您只显示了某个对象定义的摘录,并且您的实际代码在
.on()
调用中使用了
someObj.addEvent
)。大家好,我忘了提到我的函数“addEvent”的语法名称:function(),因为该函数位于命名空间中@Musa找到了答案,这是因为我传递了一个jquery选择器,而不是一个字符串来定义哪个元素将处理单击事件。@UnLoCo我不想使用你说的;“$(“#addEvent”).on('click',addEvent);”因为关于我所读到的.on(),最好指定一个具有单击权限的父级。在您的情况下,这是将完成此工作的文档。如果我的元素是从根开始的,那么该元素将在整个结构中冒泡出来作为文档处理。好的,如果您认为这只是一次鼠标点击,那么这不是性能问题,但我尝试使用尽可能多的父级语法。但这与(可能的意图)不一样委托事件处理程序。@nnnnn我在对问题的评论中所说的完全正确,但你可以用少10倍的字数继续我的解释:)但这与(假设的意图)不一样委托事件处理程序。@nnnnn与我在问题评论中所说的完全相同,但您用比@Musa少10倍的文字恢复了我的解释:)您发现了与@Musa完全相同的错误。我只能说一点,但非常感谢。你的时间很宝贵,不用担心!很高兴它帮了你。
:)
你发现了与@Musa完全相同的错误。我只能说一点,但非常感谢。你的时间很宝贵,不用担心!很高兴它能帮上忙。
:)