私は、ユーザのクリックに基づいていなければならないまで、要素を探すことはしません。実際のトリッキーな部分は、マップ上のカードに表示されているMLS番号リンクがクリックイベントのウィンドウへの伝播を停止していたため、ライブクリックバインドを使用できませんでした。
私はずっと長くなることはできませんが、コードはかなりうまくコメントされていますので、私の狂気からあなたの道を読むことができるはずです。 ;放火犯コンソールの)
ruleset a60x561 {
meta {
name "utahrealestate"
description <<
utahrealestate
>>
author "Mike Grace"
logging off
}
dispatch {
domain "utahrealestate.com"
}
rule search_for_realestate {
select when web pageview "\/search\/"
pre {
}
{
notify("title","content") with sticky = true;
emit <|
// sidebar click watching easy
// click event isn't being blocked so we can use .live and not
// worry about HTML being present at time of event listener binding
$K(".full_line a").live("click", function() {
console.log("sidebar mls clicked");
// get the report!!!
KOBJ.a60x561.getReport();
});
// pin on map mls number is a bit harder because click event is
// being blocked from propegating to the window
// to get around this we can
// 1) watch for click on pin
// 2) wait for mls element to load
// 3) attatch our own element level event listener
$K("#mapdiv_OpenLayers_Container image").click(function() {
console.log("pin on map clicked");
// attatch click event listener on mls element once it loads
setTimeout(function() {
KOBJ.a60x561.grabMls();
}, 500);
});
// ATATCH LISTENER TO MLS NUM ON MAP
KOBJ.a60x561.grabMls = function() {
console.log("looking for mls in hovercard");
// grab jQuery reference to element we are looking for
var $cardMls = $K("#property-overview a:first");
// only go on if it's on the page and visible
if (($cardMls.length > 0) && ($cardMls.is(":visible"))) {
console.log("foud mls on hevercard");
// watch for click on mls num on card
$cardMls.click(function() {
console.log("mls clicked on hovercard above map pin");
// get the report!!!
KOBJ.a60x561.getReport();
});
} else {
setTimeout(function() {
KOBJ.a60x561.grabMls();
}, 500);
};
};
// GRAB REALESTATE LISTING DETAILS ONCE IT LOADS IN THICK BOX
KOBJ.a60x561.getReport = function() {
if ($K("#public-report-wrap").length > 0) {
console.log("Listing details found!");
} else {
setTimeout(function() {
KOBJ.a60x561.getReport();
}, 500);
};
};
|>;
}
}
}
スクリーンショット私はアプリ
をテストとしてそれは一見よりも少しトリッキーです。あなたが少し難解なことをしようとしているものを作るために、今私は答えに取り組んでいるいくつかの側面があります。 –
異なるマップビューがあります。最初にやりたい地図ビューにどうやって到達しましたか?あなたが話している特定のマップビューのスクリーンショットを投稿できますか? –
スクリーンショットはまさに私が参照しているものです。投稿していただきありがとうございます。私は別の地図のビューのか分からない。私は「Alpine、UT」と言う検索をしています。マップビューで結果を見るだけです。 リストビューを実行してビュープロパティをクリックすると、そのプロパティのページが読み込まれ、そこにボタンが挿入されています。それは、js関数をトリガするために完全にロードされたときをどのように知るかわからない、厚いボックスビューです。 – Dustin