2012-04-25 168 views
1

我正在使用jQuery Tools(http://jquerytools.org/),並且無法獲取下面的函數來接受傳遞的參數。我不精通javascript或jquery,無法在任何地方找到解決這個問題的解決方案。感謝您的任何幫助!將參數傳遞給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> 
+0

不要使用'的JavaScript:'網址。不要使用'onclick' - 使用jQuery註冊事件 – ThiefMaster 2012-04-25 20:12:01

回答

1

你需要傳遞一個字符串作爲arguement,除非你有一個名爲蘋果的變量如上定義(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 
+0

應該使用'href ='javascript:void(0)''來避免觸發hashchange? – tedski 2012-04-25 20:21:02

+0

@tedski同意並更新。謝謝 – 2012-04-25 20:22:13

1

不顯眼的JavaScript方式被普遍認爲是更好的和JQuery的方式。

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

提供你給你的<a>元素在這個例子中的一類「SomeClass的」的。

這會讓你的js與你的html分離。該代碼可以去在文檔準備事件:

$(document).ready(function() { 
// code here 
}); 
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(); 

    }); 

}); 
​