当我点击drupal 7中的一个文本时,我想提醒一些事情。这是我的代码:
(function ($) {
$("#edit-arrival-city").click(function(){
alert("fe");
});
})(jQuery);
它不起作用,并且萤火虫没有错误。但是这段代码可行:
(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 非常感谢。
答案 0 :(得分:1)
正如我在评论中所提到的,我假设您在附加事件侦听器时页面上不存在您的元素。如果您的javascript代码段嵌入在元素之后(例如,在结束</body>
之前),这将正常工作。如果不是,则需要将其包装在domReady函数中:
$(function() {
$("#edit-arrival-city").click(function(){
alert("fe");
});
});
更好的方法是使用delegated events,这样就可以省略domReady,因为在事件发生时会评估点击目标:
$(document).on("click", "#edit-arrival-city", function(e) {
alert("fe");
});
只是ftr,您发布的示例是iffy。 ; - )
答案 1 :(得分:0)
只需使用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