1

看看我的 jsFiddle:http: //jsfiddle.net/KevinOrin/zuFae/

该代码在那里成功运行,但不在我正在为其编码的 Drupal 站点上:http: //gossiptalk.info/users/gossiptalk

我直接从 Drupal DOM 输出复制了 html,无论我把 js 放在哪里,它都不起作用。是的,它正在加载 jQuery 库。有什么想法吗?

$(document).on("click", function () {
var _href = $("#map-addr").attr("href");
var _addr = $("#map-addr div.field-item").text();
$("#map-addr").attr("href", _href + _addr);

});

4

3 回答 3

0

我相信 drupal 使用因此将不再引用 jQuery 对象。只需使用而不是. jQuery.noConflict$jQuery$

jQuery(document).on("click", function () {
    var _href = jQuery("#map-addr").attr("href");
    var _addr = jQuery("#map-addr div.field-item").text();
    jQuery("#map-addr").attr("href", _href + _addr);
});
于 2013-04-28T03:44:05.130 回答
0

你应该能够使用它并且仍然像以前那样在其中编写 jQuery,因为它使 $ 成为自身的本地变量并输出到 jQuery。它通常与 document.ready 一样工作

(function($){
    $(document).on("click", function () {
        var _href = $("#map-addr").attr("href");
        var _addr = $("#map-addr div.field-item").text();
        $("#map-addr").attr("href", _href + _addr);
    });
})(jQuery);
于 2013-04-28T03:47:21.873 回答
0

您也可以在代码中只使用“jQuery”变量而不是 $ 变量。

见:http ://drupal.org/node/171213

http://drupal.org/update/modules/6/7#javascript_compatibility

var jq = jQuery.noConflict();
jq(document).on("click", function () {
  var _href = jq("#map-addr").attr("href");
  var _addr = jq("#map-addr div.field-item").text();
  jq("#map-addr").attr("href", _href + _addr);
});
于 2013-04-28T03:47:39.037 回答