0

我在下面有这两个函数,无论出于何种原因,windowedBox 函数仅在我从另一个函数调用它时才起作用。如果我直接调用windowedBox(),它不会做任何事情。如果我调用 getShareButtons(),它会调用 windowedBox() 并正常工作。如果有人知道为什么会这样,请帮助我。:(

注意:: 如果您想知道为什么它说 $j 而不是 $ its 因为我是这样设置的。

function getShareButtons(){
    var postPath = window.location.pathname;
    var videoTitle = 'asdf';
    var videoURL = 'asdf';

    //Output social button attributes
    $j(".facebook-share").attr('href', 'asdf');
    windowedBox(); <---THIS CALL WORKS
}

function windowedBox() { 
    $j(".facebook-share, .twitter-share").click(function(){
        window.open(this.href, videoTitle, "width=626, height=436", "status=0", "toolbar=0");
        return false;
    });
}
4

2 回答 2

3

我想这是因为您使用的是变量

videoTitle 

未在此函数中声明,但在另一个函数中声明:)

于 2012-10-14T00:45:07.227 回答
2

您收到错误,因为在第一个函数href中设置了链接属性,但是如果您只调用第二个函数,则this.href保持未定义或为空

像这样试试

$j(".facebook-share").attr('href', 'asdf');
var videoTitle = 'Title';

windowedBox();

function windowedBox() { 
    $j(".facebook-share, .twitter-share").click(function(){
        window.open(this.href, videoTitle, "width=626, height=436", "status=0", "toolbar=0");
        return false;
    });
}
于 2012-10-14T00:42:52.573 回答