2012-12-21 78 views
0

我試圖使這些jQuery的命令,通過HTML鏈接後執行:在HTML鏈接中調用jQuery函數?

    $('#mov').click(function() { 
          $('#twastream').hide(); 
          $('#ownstream').hide();          
          $('#movstream').fadeIn(); 
        } 

據說這是爲了隱藏兩個元素,並顯示一個id爲「MOV」的鏈接後點擊,但沒有什麼是發生。這是鏈接:

    <a href="test/#" onclick="mov()">Click here!</a> 

這是元素;所有三個都格式化。

    <div class="movstream" id="movstream"> 

我該如何改變它們的格式以便使初始代碼的功能正確?

+0

'$( 「#MOV」)'是一種類型的[選擇器](HTTP的://api.jquery。com/category/selectors /)不是一個函數。 – ocanal

回答

3

你需要對你的錨標記的ID爲您的jQuery選擇$('#mov')工作:

<a href="test/#" id="mov">Click here!</a> 

使用你的錨onclick="mov()"意味着執行命名mov功能,這是不確定的

你還需要在$(document).ready()來包裝你.click事件:

$(document).ready(function(){ 
    $('#mov').click(function() { 
     $('#twastream').hide(); 
     $('#ownstream').hide();          
     $('#movstream').fadeIn(); 
    } 
}); 

否則當腳本運行時元素可能不存在

+0

我也會添加一個'return false;'以便錨點的默認行爲不會被觸發。 – jpatiaga

+0

好的,我在鏈接中添加了正確的錨,但它仍然沒有做任何事情。是否有一種方法可以在頁面加載時觸發其中之一,而不是僅在按下按鈕後觸發?目前,所有三個元素都顯示在頁面中。 –

+0

@TylerKing是的,我會更新我的答案 – Sharlike

0

jQuery的強大之處在於它能夠完成像這樣普通的任務。

首先,給你的鏈接或者是ID(一類會工作,如果這可以鏈接任何給定數量的發生),然後您的活動在後臺綁定,就像這樣:

HTML

<a href="/#" class="test" /> 
<!--OR--> 
<a href="/#" id="test" /> 

的JavaScript

$(".test").click(function(){ //Or $("#test") 
    $('#twastream').hide(); 
    $('#ownstream').hide();          
    $('#movstream').fadeIn(); 
}); 

它可能會有所幫助到g o並回顧jQuery API

0

沒有任何事情發生,因爲您沒有在錨點上指定的ID。 jQuery正在尋找一個id爲「mov」的元素的點擊,但是沒有這個id的元素。

0

你應該聽一個現成的處理器中的事件:

$(function() { 
    $('#mov').click(function() { 
     $('#twastream').hide(); 
     $('#ownstream').hide();          
     $('#movstream').fadeIn(); 
    }); 
}); 

http://api.jquery.com/ready/

你你需要確保.click函數指定正確選擇。請注意,$('#mov')idmov項目的選擇器。這也適用於類。

<a id="mov">Click here!</a>  
<div class="twastream" id="twastream">Twas</div> 
<div class="ownstream" id="ownstream">Own</div> 
<div class="movstream" id="movstream">Mov</div> 

http://api.jquery.com/category/selectors/