从内部函数中获取元素

时间:2014-12-16 12:30:38

标签: javascript jquery onclick this

我的时区早上好。

我的HTML页面中有这段代码

<span id="x>
    <div onclick="$(this).applyFancybox({
        trigger: !$.browser.msie, 
        target: (event.srcElement || event.target)
    }); return false;">

我正在更改此代码

<span id="x">
    <div>
</span>

<script>
...
$(document).ready (function () {

    $("#x div")
        .click(function(){
            this.applyFancybox({
                trigger: !$.browser.msie, 
                target: (event.srcElement || event.target)
            }); return false;
        });
}
...
</script>

这不起作用,因为我认为这不是指向div元素,我该如何解决?

提前致谢 最好的问候

3 个答案:

答案 0 :(得分:1)

尝试将this更改为$(this)

this是一个javascript对象,$(this)是一个jQuery对象

所以你的最终代码看起来像

$(document).ready (function () {
    $("#x div")
        .click(function(){
            $(this).applyFancybox({
                trigger: !$.browser.msie, 
                target: (event.srcElement || event.target)
            }); return false;
        });
}

顺便说一下,$.browser.msie也从1.3弃用,并在1.9

中删除

答案 1 :(得分:0)

尝试以下可能有帮助的代码

<span id="x">
    <div>
</span>

<script type="text/javascript">
...
$(document).ready (function () {
    $("#x").click(function(){
        this.applyFancybox({
            trigger: !$.browser.msie, 
            target: (event.srcElement || event.target)
        }); return false;
    });       
}
...
</script>

Happy Codings:)

答案 2 :(得分:0)

事件处理程序this内部指向HTMLDivElement而不是jQuery对象。没有这样的方法applyFancybox。试试$(this)