1

我正在使用 jQuery 工具 (http://jquerytools.org/) 并且无法获取以下函数来接受传递的参数。我不精通 javascript 或 jquery,并且无法在任何地方找到可以使其适用于以下代码的解决方案。感谢您的任何帮助!

当前设置:

<a href='javascript:popup();'>Text Link That Calls Below Function</a>



<script>
function popup() {
if ($("#facebox").hasClass("init")) {
    $("#facebox").overlay().load();
}
else {
    $("#facebox").addClass("init");
    $("#facebox").overlay({

     // custom top position
     top: 260,

     mask: { color: '#838383',
         loadSpeed: 200,
         opacity: 0.5
     },  
     closeOnClick: true,
     load: true
    });
}
}
</script>

我希望它做这样的事情......

<a href='javascript:popup(apples);'>Text Link That Calls Below Function</a>



<script>
function popup(choosebox) {
if ($("#choosebox").hasClass("init")) {
    $("#choosebox").overlay().load();
}
else {
    $("#choosebox").addClass("init");
    $("#choosebox").overlay({

     // custom top position
     top: 260,

     mask: { color: '#838383',
         loadSpeed: 200,
         opacity: 0.5
     },  
     closeOnClick: true,
     load: true
    });
}
}
</script>
4

3 回答 3

1

您需要传递一个字符串作为参数,除非您在上面定义了一个名为 apple 的变量 ( var apples;)。尝试像下面这样更改它,

<a href='javascript:popup("apples");'>Text Link That Calls Below Function</a>

注意周围的引号popup("apples")

由于您使用的是 jQuery,因此您可以像下面这样很好地做到这一点,

HTML:

<a href='javascript:void(0)' class="aLink" >Text Link That Calls Below Function</a>

JS:

$(function () {
    $('.aLink').click(function () {
        popup("apples");
    });
});

此外,我认为您可能需要更改您的选择器,如下所示,

function popup(choosebox) {
    var $choosebox = $("#" + choosebox);

    if ($choosebox.hasClass("init")) {
        $choosebox.overlay().load();
    }
    else {
        $choosebox.addClass("init");
        $choosebox.overlay({
    //..rest of your code
于 2012-04-25T20:10:20.937 回答
1

通常认为不显眼的 javascript 方法和 JQuery 方法更好。

$('a.someclass').click(function() { popup('orange'); });

在这个例子中,如果你给你的<a>元素有一个“someclass”类。

这使您的 js 与您的 html 分开。该代码可以进入文档就绪事件:

$(document).ready(function() {
 // code here
});
于 2012-04-25T20:11:59.583 回答
0

为该锚点上的类编写一个单击事件,然后通过读取数据属性确定哪个“框”与该链接相关。这将为您提供一个通用的、可重用的 jQuery 代码块,任何匹配此模式的锚标记都可以调用该代码块。

HTML:

<a href="#" class="popup" data-choosebox="apples">Text Link That Calls Below Function</a>

JavaScript:

$(document).ready(function(){

    $('a.popup').on('click', function(e){

        var $_target = $('#' + $(this).data("choosebox"));

        if ($_target.hasClass("init"){
            $_target.overlay().load();
        } else {
            $_target.overlay().load({

                top: 260,
                mask: { color: '#838383',
                        loadSpeed: 200,
                        opacity: 0.5 },
                closeOnClick: true,
                load: true
            });
        }
        e.preventDefault();

    });

});
​

于 2012-04-25T20:27:07.837 回答