2012-08-13 32 views
0

我通過url獲取變量。 http://mysite.com/?category_id=1 我想用一個類別的id屬性觸發按鈕:
<a class="cat-item" category-id="1" href="#">如何使用自定義屬性觸發某個按鈕

我沒有得到的URL參數的問題。我唯一的問題是如何在加載站點後觸發按鈕。

感謝您的幫助。

+0

以及如何做參數涉及到的按鈕? – 2012-08-13 08:23:43

+0

您也可以爲該標記賦予一個id,然後使用id觸發它。 – 2012-08-13 08:27:06

+0

我不喜歡使用像'category-id'這樣的無效屬性,尤其是當像data-id這樣有效的屬性存在並且更加有用時。 – Blazemonger 2013-02-27 21:00:23

回答

0

嘗試使用這樣的:

function getUrlVars() 
{ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for(var i = 0; i < hashes.length; i++) 
    { 
        hash = hashes[i].split('='); 
        vars.push(hash[0]); 
        vars[hash[0]] = hash[1]; 
    } 
    return vars; 
} 

$(document).ready(function() { 
    var catVal = getUrlVars()["category_id"]; 
    $('a[category-id="' + catVal +'"]').click(); 
}); 
0

您可以通過像下面的屬性查詢它選擇特定的錨標記。

$(document).ready(function() { 
    var button = $('a[category-id="' + your id from the url + '"]', '#categoryMenu'); 
    button.click(); //if your intention was to trigger the click event. 
    button.trigger("some event name"); //if your intention was to trigger some other event. 
}); 

正如你所看到的,我將第二個參數傳遞給jQuery選擇器。我這樣做只是將搜索範圍縮小到id爲'categoryMenu'的容器,以防止jQuery搜索整個DOM。這將使您在此選擇器上獲得更好的性能。

所以我的建議是....

把按鈕放在一個包裝DIV這樣你就可以應用該技術

<div id="categoryMenu"> 
    <a class="cat-item" category-id="1" href="#">category 1</a> 
    <a class="cat-item" category-id="2" href="#">category 2</a> 
    <a class="cat-item" category-id="3" href="#">category 3</a> 
    <a class="cat-item" category-id="4" href="#">category 4</a> 
    <a class="cat-item" category-id="5" href="#">category 5</a> 
</div> 
+0

謝謝你們,找出我自己的方式。 '$(文件)。就緒(函數(){\t \t VAR的queryString = getParameterByName(' CATEGORY_ID! '); \t如果(的queryString = ''){ \t \t $(' #課程類別裏。貓項 ')。每個(函數(I){ \t \t \t如果($(本).attr(' 類別ID ')==的queryString){ \t \t \t \t $(本).trigger('點擊'); \t \t \t} }); \t}' – 2012-08-13 08:37:32

+0

Arreane Diez Cayoca您的解決方案在性能方面不是最好的。嘗試將屬性選擇器與第二個參數結合使用以縮小查詢選擇器的範圍。你不需要每個循環,我的選擇器會更快。 – 2012-08-13 08:39:44

+0

謝謝你的解釋。這很有幫助。 – 2012-08-13 08:43:33

相關問題