Не могу привязать селекторы jQuery ни к чему, кроме документа - Rails 3.2 - PullRequest
0 голосов
/ 22 марта 2012

Супер странная проблема здесь.У меня проблемы с получением jQuery для привязки любых селекторов, кроме документа, внутри файла .js.

пример кода:

$(document).click(function () {
 $("#nav_primary").empty();
});

когда я щелкаю где-либо, nav_primary div очищает, как и ожидалосьОднако, когда я использую этот код:

$("div").click(function () {
 $("#nav_primary").empty();
});

, когда я нажимаю, ничего не происходит.Если я не введу это в мою консоль.Когда я вставляю приведенный выше код в консоль Firebug, он загружается, как и ожидалось, и щелчок в любом месте очищает div, как и ожидалось.

Я знаю, что оба javascript и jquery работают, так как у меня есть это в моем jsЖурналы, как ожидалось:

console.log("js is running");
if (jQuery) {console.log('jQuery is loaded!');}

Я слышал, что есть конфликты с прототипом, но я не думаю, что я запускаю его.вот моя голова:

<head>
  <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
  <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
  <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
  <script src="/assets/portfolio.js?body=1" type="text/javascript"></script>
  <script src="/assets/application.js?body=1" type="text/javascript"></script>
  <link href="/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
  <meta content="authenticity_token" name="csrf-param" />
  <meta content="(token here)" name="csrf-token" />
  <!--[if !IE 7]>
    <style type="text/css"> #main {display:table;height:100%} </style>
  <![endif]-->
  <!--[if lt IE 9]>
    <script src='//html5shiv.googlecode.com/svn/trunk/html5.js'></script>
  <![endif]-->
</head>

Ответы [ 3 ]

2 голосов
/ 22 марта 2012

Глупый ответ.но вы положили свой код в ready функцию

например

$(function() {

    $("div").click(function () {
        $("#nav_primary").empty();
    });
});
0 голосов
/ 22 марта 2012

Не видя DOM и не предполагая, что вы помещаете эти события в $(function() { }); ...

Попробуйте:

$(document).on('click', 'div', function () {
    $("#nav_primary").empty();
});
0 голосов
/ 22 марта 2012
$("div").click(function () {
 $("#nav_primary").empty();
});

Скорее всего, div, к которому вы хотите присоединиться, еще не был в DOM, когда вы запускали свой код (а $("div") был просто пустым списком).

Попробуйте вместо этого:

$(document).on("click", "div", function () {
 $("#nav_primary").empty();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...