代码之家  ›  专栏  ›  技术社区  ›  Wazy

在JavaScript函数中使用jQuery

  •  5
  • Wazy  · 技术社区  · 15 年前
    function divlightbox(val)
    {
        if(val)
        {
            val=val.replace( /^\s+/g, "" );
            var count_js=0;
            var big_string='';
            document.getElementById("video_lightbox").innerHTML="";
            document.getElementById("divlightbox").style.display = "block";
            $("#video_lightbox").css({"height":"430px","top":"10%","width":"480px"});
    

    我发现错误在上面。我的问题是 我不能同时使用jQuery和传统的JavaScript吗? 我已经做过无数次这样的编码,从来没有遇到过这样的问题。我曾经使用jQuery方法,比如 .hide() 和 .css() 在JavaScript函数内部,但这次不起作用。

    提前谢谢。

    4 回复  |  直到 14 年前
        1
  •  4
  •   Patricia    15 年前

    要执行hide();和css()等操作,需要jquery对象。不能对dom元素执行这些操作。

    所以你可以 $('#video_lightbox').html(""); 或

    $('#video_lightbox').empty();
    
        2
  •  10
  •   majick    10 年前

    虽然其他答案解决了具体的问题,但我不认为操作人员的问题( 粗体字 )是真的,根据具体情况, $ 可能尚未定义为jQuery对象 (我自己也有过几次这样的问题。)

    在这种情况下,您需要执行以下操作:

    function divlightbox(val) {
        // ...
        // just use jQuery instead of $ one time
        jQuery("#video_lightbox").css({"height":"430px","top":"10%","width":"480px"});
    }
    

    或者

    function divlightbox(val) {
        // define the $ as jQuery for multiple uses
        jQuery(function($) {
            // ...
            $("#video_lightbox").css("height":"430px");
            $("#video_lightbox").css("top":"10%");
            $("#video_lightbox").css("width":"480px");
        }); 
    }
    
        3
  •  4
  •   Z. Zlatev    15 年前

    jQuery是JavaScript,所以是的。相反 .innerHTML="" 只是使用 .empty() 。相反 .getElementById() 使用 $('#..') 等等。

        4
  •  1
  •   fcalderan fcalderan    15 年前

    必须在javascript控制台中提供错误。

    1) 是否向divlightbox function()传递val参数?你叫它什么时候?

    2) 为什么使用相同的标识符 divlightbox 一个函数和一个div id?请把名字改成函数,也许问题出在这里。

    3)在访问它们之前,一定要检查视频盒是否存在。