为什么不在这里定义这些?

时间:2012-12-29 19:01:12

标签: javascript jquery variables requirejs-define

我正在查看Google提供的API,我需要将其翻译为jQuery,所以我做到了。在Google的代码中,Google定义了已创建的元素,但无需在jQuery mobile中定义它们。我是编程的新手,所以我不确定这是否重要?代码在控制台日志中无错误地工作,无需定义。

Google:

google.maps.event.addListener(panoramioLayer, 'click', function(photo) {
    var li = document.createElement('li');
    var link = document.createElement('a');
    link.innerHTML = photo.featureDetails.title + ': ' +
       photo.featureDetails.author;
    link.setAttribute('href', photo.featureDetails.url);
    li.appendChild(link);
});

jQuery的:

google.maps.event.addListener(panoramioLayer, 'click', function(photo) {
    $(document.createElement("a")).html("photo.featureDetails.title + ': ' + photo.featureDetails.author");
    $("a").attr("href", photo.featureDetails.url);
    $("li").append("a");
});

2 个答案:

答案 0 :(得分:1)

正确的转换应该是这样的: -

google.maps.event.addListener(panoramioLayer, 'click', function(photo) {
    var anchor=$("<a/>").html(photo.featureDetails.title + ': ' + photo.featureDetails.author).attr("href", photo.featureDetails.url);
    $("<li/>").append(anchor);
});

答案 1 :(得分:1)

这样的事情应该有效:

google.maps.event.addListener(panoramioLayer, 'click', function(photo) 
{
    var $link = $(document.createElement("a")).html(photo.featureDetails.title + ': ' + photo.featureDetails.author);
    $link.attr("href", photo.featureDetails.url);
    $("<li/>").append($link);
});

您需要存储创建的链接标记,这样您就不会更改所有标记的hrefs