1

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>
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 に答える