将参数传递给jQuery函数

时间:2012-04-25 20:08:56

标签: javascript jquery jquery-tools

我正在使用jQuery Tools(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>

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

不引人注目的javascript方法通常被认为是更好的JQuery方式。

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

在此示例中,假设您为<a>元素提供了一个“someclass”类。

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

$(document).ready(function() {
 // code here
});

答案 2 :(得分: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();

    });

});
​

相关问题