我希望在动态转发器中悬停div时调用jquery函数。在跑步时我不知道转发器中的ID。 我这样做,但不会工作:
<!-- language: lang-js -->
function myFunc(myID) {
$(this).AddClass("myborder");
}
function RemoveClass(myID) {
$(this).RemoveClass("myborder");
}
答案 0 :(得分:0)
而不是打电话
onmouseover="myFunc(this);
你应该使用
onmouseover="myFunc($(this).attr('id'));
然后,在函数中,尝试
function myFunc(myID) {
$('#'+myID).AddClass("myborder");
}
function RemoveClass(myID) {
$('#'+myid).RemoveClass("myborder");
}
答案 1 :(得分:0)
&#34;问题&#34;,如图所示,是由于小提琴没有正确使用和其他一些印刷错误。 (我已经投票决定关闭这个问题,因为这种情况难以重现。)
这是corrected fiddle 1 。
更改jsFiddle选项&#34; onLoad&#34; to&#34; No Wrap&#34; - 在左侧面板中查看&#34; Frameworks&amp;扩展&#34 ;.
使用 onLoad 时,JavaScript在内部执行函数,因此函数是 local 到onLoad函数。因此,这些函数在小提琴中的事件回调中不可用。或者,明确地将函数对象分配给窗口属性。
修复拼写错误 - JavaScript 区分大小写。有几个(例如addClass
vs AddClass
),所有这些都被错误地报告为错误控制台中的错误。我还必须添加onmouseout
的缺失用法。
请注意,在任何情况下,&#34; ID&#34;用了。
HTML:
<div class="green" id="dew0do"
onmouseover="myFunc(this);"
onmouseout="RemoveClass(this);">test</div>
JavaScript的:
function myFunc(elm) { /* but really choose better function names */
$(elm).addClass("myborder");
}
function RemoveClass(elm) {
$(elm).removeClass("myborder");
}
答案 2 :(得分:0)
如果你知道DOM层次结构,你可以使用(例如:div.container&gt; div.list&gt; ul&gt; li):
$(function(){
$('div.container')
.on("mouseover", "div.list > ul > li",
function(){$(this).AddClass("myborder");} )
.on("mouseout", "div.list > ul > li",
function(){$(this).RemoveClass("myborder");} );
}