我想抓取基於網址哈希的元素,並點擊該元素。我必須失去了一些東西,因爲我得到的錯誤:從網址哈希獲取元素ID並激發它的點擊處理程序
Uncaught TypeError: Property '$' of object [object Object] is not a function
下面的代碼
jQuery(function($){
function doUrl() {
var urlHash = window.location.hash;
if (urlHash != '') {
if ($(urlHash).length > 0) {
$(urlHash).trigger('click');
}
}
}
doUrl();
});
}); // jquery 看起來這個錯誤源於urlHash,它不是一個合適的元素類型,可以輸入到$()
。但控制檯告訴我,urlHash變量包含我期望的內容:「#someClickableElement」。
當我手動將'#spagepage'替換爲urlHash變量時,點擊事件仍然不會在頁面加載時觸發,就像我期望的那樣。所以只是爲了澄清,這也不起作用:
$(function(){
$('#someClickableElement').click();
});
我不能告訴我的問題在哪裏。
編輯
對於那些誰希望看到整個代碼,這裏的很多的那樣:
var map;
function initialize() {
var mapOptions = {
zoom: 17,
center: new google.maps.LatLng(xxx,xxx),
mapTypeId: google.maps.MapTypeId.ROADMAP,
panControl: false,
zoomControl: true,
zoomControlOptions: {
position: google.maps.ControlPosition.RIGHT_CENTER
},
scaleControl: false,
mapTypeControl: false,
streetViewControlOptions: {
position: google.maps.ControlPosition.RIGHT_CENTER
}
// navigationControl: true, // (this is the pan and zoom together)
};
map = new google.maps.Map(document.getElementById('map-area'), mapOptions);
}
// init map
google.maps.event.addDomListener(window, 'load', initialize);
function findMapItem(lat,lon) {
var buildingLoc = new google.maps.LatLng(lat,lon);
map.panTo(buildingLoc);
removeAllMarkers();
// add new marker
buildingMarker = new google.maps.Marker({
map: map,
position: buildingLoc,
clickable: true,
icon: pathToAssets + 'bobcatMarker2.png'
//title: ,
})
buildingMarkers.push(buildingMarker);
}
jQuery(function($){
$('.mapItemsControls a').click(function(){
if ($(this).hasClass('layerOn')) {
$(this).removeClass('layerOn');
} else {
$('.mapItemsControls a').not(this).removeClass('layerOn');
$(this).addClass('layerOn');
}
doHistory($(this).attr('href'));
return false;
});
$('#mapNav .findMapItem').click(function(){
var lat = $(this).data('lat');
var lon = $(this).data('lon');
if (lat != '' && lon != '') {
findMapItem(lat,lon);
}
});
function doUrl() {
var urlHash = window.location.hash;
if (jQuery(urlHash).length > 0) {
jQuery(urlHash).trigger('click');
}
}
doUrl();
});
你能發佈整個JS代碼嗎? – Scimonster
聽起來像它沒有任何關係的urlHash不工作。 – naomik
我們需要查看所有代碼,到目前爲止所顯示的內容沒有任何問題。如果click()不起作用,您肯定會在其他地方發現錯誤,請檢查您的控制檯。 – Leng