【问题标题】:drupal 7 jquery selector does not workdrupal 7 jquery选择器不起作用
【发布时间】:2014-01-09 15:03:29
【问题描述】:

我想在单击 drupal 7 中的一个文本时发出警报。这是我的代码:

(function ($) { 
$("#edit-arrival-city").click(function(){
    alert("fe");
});

})(jQuery);

它不起作用,并且firebug中没有错误。但是这段代码有效:

(function ($) { 
alert("something");

})(jQuery);

文本字段是:

<input id="edit-arrival-city" class="form-text required form-autocomplete jquery-once-1-processed" type="text" maxlength="128" size="20" value="Arrival City" name="arrival_city" autocomplete="OFF" aria-autocomplete="list">

js 代码在 my_module 文件夹中,并添加到 my_module.info 中:scripts[] = js/myjs.js 非常感谢。

【问题讨论】:

  • 附加事件监听器时页面上是否存在该元素?
  • 我认为 (function ($) { })(jQuery);和 document.ready 一样,对吧?
  • 不。那是一个iffy,jQuery 作为参数传递。 domready 的简写形式类似于 $(function() {});。 ;-)
  • 天啊,你救了我的命!!!你是对的!

标签: javascript drupal-7


【解决方案1】:

正如我在 cmets 中提到的,我假设当您附加事件侦听器时页面上不存在您的元素。如果您的 javascript sn-p 嵌入在元素之后(例如,在结束 &lt;/body&gt; 之前嵌入,这将正常工作。如果不是,您需要将其包装在 domReady 函数中:

$(function() {
    $("#edit-arrival-city").click(function(){
         alert("fe");
    });
});

最好使用delegated events,这样你可以省略domReady,因为点击目标是在事件发生时评估的:

$(document).on("click", "#edit-arrival-city", function(e) {
    alert("fe");
});

只是ftr,您发布的示例是iffy。 ;-)

【讨论】:

    【解决方案2】:

    只需使用jQuery 代替$ 对于这种情况jQuery :contains() Selector 需要使用 不是

    drupal_add_js('
                $(document).ready(function(){
                    $("p:contains(is)").css("background-color", "yellow");
                });
            ', array('type' => 'inline', 'scope' => 'footer', 'defer' => TRUE));
    

    但是

    drupal_add_js('
                jQuery(document).ready(function(){
                    jQuery("p:contains(is)").css("background-color", "yellow");
                });
            ', array('type' => 'inline', 'scope' => 'footer', 'defer' => TRUE));
    

    不需要

    <script src="https://ajax.googleapis.com
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多