使用动态aspx转发器和动态id调用Jquery函数

时间:2014-03-17 17:28:52

标签: jquery

我希望在动态转发器中悬停div时调用jquery函数。在跑步时我不知道转发器中的ID。 我这样做,但不会工作:

http://jsfiddle.net/3mhAz/13/

<!-- language: lang-js -->
function myFunc(myID) {
    $(this).AddClass("myborder");
}

function RemoveClass(myID) {
    $(this).RemoveClass("myborder");
}

3 个答案:

答案 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

  1. 更改jsFiddle选项&#34; onLoad&#34; to&#34; No Wrap&#34; - 在左侧面板中查看&#34; Frameworks&amp;扩展&#34 ;.

    使用 onLoad 时,JavaScript在内部执行函数,因此函数是 local 到onLoad函数。因此,这些函数在小提琴中的事件回调中可用。或者,明确地将函数对象分配给窗口属性。

  2. 修复拼写错误 - JavaScript 区分大小写。有几个(例如addClass vs AddClass),所有这些都被错误地报告为错误控制台中的错误。我还必须添加onmouseout的缺失用法。

  3. 请注意,在任何情况下,&#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");} );
}