在JavaScript函数中使用jQuery

Waz*_*azy 5 javascript jquery

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"});
Run Code Online (Sandbox Code Playgroud)

我发现错误在上面.我的问题是我不能同时使用jQuery和传统的JavaScript吗?我已经做了很多次这样的编码,从来没有遇到像这样的问题.我以前在JavaScript函数中使用jQuery方法.hide(),.css()但这次它不起作用.

提前致谢.

maj*_*ick 10

虽然其他答案解决了具体问题,但我认为OP的问题(粗体)在这里没有得到解答,因为根据具体的上下文,$ 可能还没有定义为jQuery对象(自己有这个问题)好几次了.)

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

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

要么

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");
    }); 
}
Run Code Online (Sandbox Code Playgroud)


Z. *_*tev 5

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


Pat*_*cia 4

做类似 hide() 的事情;和 css() 你需要 jquery 对象。你不能对 dom 元素执行它们。

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

$('#video_lightbox').empty();
Run Code Online (Sandbox Code Playgroud)