-1

小さな問題があります。私は、いくつかの結果のフィルタリングと順序付けを行う Jquery プラグイン JPList で Google マップを使用しています。

jplist プラグインの jquery を少し削除すると、onclick メソッドが Google マップで機能しますが、jplist コードをマップに戻すとすぐにクリックが機能しなくなります。

JS エラーは発生しません。その原因を突き止めるのに本当に苦労しています。

これを診断する最良の方法は何ですか?これを解決する方法を知ることは本当に役に立ちます。

どんな助けでも感謝します。

ありがとう

var infowindow = new google.maps.InfoWindow();
        var myOptions = {
           zoom: 4,
           center: new google.maps.LatLng(-40.900557, 174.885971),
           mapTypeId: google.maps.MapTypeId.ROADMAP,
           disableDefaultUI: true
        };
        var icon = "img/marker.png";
        var icons = {
            'dflt': "img/marker.png",
            'selected': "img/white-marker.png"
        };
        var seletedMarker = null;
        $(function() {
            var map = new google.maps.Map(document.getElementById("map"), myOptions);
            // grab data attributes from html
            $('.row').each(function( index ){
                var rLat = $(this).data("coordinates").lat;
                var rLng = $(this).data("coordinates").lng;
                var rTitle = $(this).find('.itemtitle a').html();
                var rTel = $(this).find('.tel').html();
                var rAdd = $(this).find('.add').html();
                var contentString = '<div style="text-align:left"><h4 style="color:#0068a6;font-size:16px;margin:0px 0px 10px 0px;">' + rTitle + '</h4><strong>' + rTel + '</strong><br /><br />' + rAdd + '</div>';
                var myLatLng = new google.maps.LatLng( rLat, rLng );
                var otherMarkers = new google.maps.Marker({
                    position: myLatLng,
                    map: map,
                    icon: icons.dflt,
                    title: rTitle
                });
                // click actions
                google.maps.event.addListener(otherMarkers, 'click', (function(otherMarkers, index) {
                    return function() {
                        if (seletedMarker) {
                            seletedMarker.setIcon(icons.dflt); //revert seletedMarker's icon to .dflt
                        }
                        infowindow.setContent( contentString );
                        otherMarkers.setIcon(icons.selected); //Set marker's icon to .seleted
                        infowindow.open( map, otherMarkers );
                        seletedMarker = otherMarkers; //Remember the currently selected marker so it can be reverted to default next time round.
                    }
                })(otherMarkers, index));
                **/* this is what doesnt work */**
                $(this).click(function(){
                    google.maps.event.trigger( otherMarkers ,'click')
                });     
            });
**/* this is what stops it working */**
                $('#dynamiclist').jplist({
                    items_box: '.results',
                    item_path: '.row',
                    panel_path: '.panel',
                    items_per_page: '4000',
                    //checkbox filters
                    control_types: {
                        'cb_filters': {
                            class_name: 'control_checkbox_filters'
                            ,options: {}
                        },
                        'reset': {
                            class_name: 'control_reset'
                            ,options: {}
                        }
                    }
                });
            });

リチャード

4

2 に答える 2

0

私がよく目にするパターンは、変数がスクリプトによってオーバーライドされるというものです。

例として、jQuery をロードすると、$ が設定されます。

プラグインを jQuery に追加すると、jqURI プラグインの $.jqURI が表示されます。

ただし、jQuery プラグインの jQuery が既に含まれているスクリプトをロードすると、$ 変数またはネストされたプロパティとメソッドが完全にリセットされる可能性があります。

DOM タブで Firebug をチェックインして、スクリプトのすべての組み合わせにどのプロパティが存在するかを確認します (したがって、スクリプト A と B がある場合は、A のみ、B のみ、次に A+B をチェックします)。

jQuery が関係している場合は、jQuery ドキュメントの jQuery.noConflict を参照してください。

于 2013-03-05T20:38:45.853 に答える
0

このスクリプトの jQuery を無効にすることはできませんか? どこにも必要ありません。

于 2013-03-05T22:00:16.000 に答える