2015-07-01 2 views
1

У меня есть сценарий jquery, который я только что написал быстро, чтобы заполнить класс ap, чтобы параметры взаимодействия с сервером можно было легко переключить с игрока на сервер и т. Д. и т. Д. Проблема, теперь мой скрипт не заполняется. У меня есть форма, которая работает с ajax прямо над ним, поэтому я не понимаю, почему это проблема с jquery lib. Мой не интерактивный должен быть интерактивным сценарий выглядит следующим образом:JQuery Script не вызывает никакого взаимодействия

<script> 
$(function() { 
    $(".commandclass").click(function(e){ 
     var url = $(".commandclass").attr("data-href"); 
     $(".commandtype").load(url); 
    )}; 
}); 
</script> 

И это прекрасные коллеги (Хорошо, может быть, мы пойдем с терпимыми коллегами) являются:

<a href='javascript:void(0);' class='commandclass' data-href='modules/server.submod.php'>Server Commands</a> | 
         <a href='javascript:void(0);' class='commandclass' data-href='modules/player.submod.php'>Player Commands</a> | 
         <p class='commandtype'> 
         <table align='center'> 
          <tr> 
           <td><input type='radio' value='server restart 300' id='command' name='command'>5 Minute Restart</td> 
           <td><input type='radio' value='server restart 900' id='command' name='command'>15 Minute Restart</td> 
           <td><input type='radio' value='server restart 1800' id='command' name='command'>30 Minute Restart</td> 
          </tr> 
          <tr> 
           <td><input type='radio' value='server restart 3600' id='command' name='command'>1 Hour Restart</td> 
           <td><input type='radio' value='server restart 21600' id='command' name='command'>6 Hour Restart</td> 
           <td><input type='radio' value='server restart 43200' id='command' name='command'>12 Hour Restart</td> 
          </tr> 
          <tr><td></td> 
           <td><input type='radio' value='server restart 86400' id='command' name='command'>1 Day Restart</td> 
          <td></td></tr> 
         </table> 
         </p> 

Так что мой желаемый результат будет когда вы нажимаете на ссылку; вместо того, чтобы следовать за этой ссылкой, он извлекает атрибут data-href, который я прикреплял, и заполняет его в класс classtype p, чтобы он продолжал оттуда и загружал указанные функции на веб-страницу. Ну. Не слишком уверен, что еще поможет, но не стесняйтесь спрашивать, не пропустил ли я какую-либо требуемую информацию и обещаю по очереди. Я похлопаю себя по голове или позволю моей дочери сделать это за грубую ошибку.

Думал, что, возможно, это поможет, поэтому я также добавляю это. Моя верхняя часть имеет два сценария. Один для запуска команды для переключения различных типов внутри модуля. Это моя самая большая часть всего этого.

<script> 
$(function() { 
    $("#quickcommands").submit(function() { 
     $(".result").html("Running Command"); 
     $(".result").append("<img src='/assets/images/giphy.gif'>"); 
     $.ajax({ 
    type: "POST", 
    url: $("#quickcommands").attr("action"), 
    data: $("#quickcommands").serialize(), 
    success: function(data) { 
       $(".result").html(data); 
       if(data == "") { $(".result").html("Command Sent"); } 
    } 
    }); 
    return false; 
    }); 


    }); 


</script> 
<script> 
$(function() { 
    $(".commandclass").click(function(e){ 
     var url = $(".commandclass").attr("data-href"); 
     $(".commandtype").html("test"); 
    )}; 
}); 
</script> 

Верхний скрипт работает нормально, он находится на скрипте №2, где ничего не работает.

+0

Что происходит в сети? – JNF

+0

Вы имеете в виду консольную отладку? –

+0

Что вы должны работать нормально. Вы проверили ошибки в консоли? Элементы '.commandclass' добавлены к странице динамически? –

ответ

0

Typo?

В конце есть )} вместо })

+0

Спасибо JNF. Вот и все. Ненавижу, чтобы сказать это, но я, вероятно, бы бил головой в стол, пытаясь понять это часами, так что спасибо! Похмелье обеспечивает все головные боли, которые мне нужны утром! –

+0

Я бы назвал вашу дочь в ...;) Это случается, когда вы написали код поспешно. Я был свидетелем того, как коллега потратил 3 часа на код, чтобы найти '=' вместо '==' – JNF

+0

Это на самом деле первый раз, когда я написал javascript, не глядя на какие-либо ссылки. Я сильный в PHP и слабый в Janything. –

1

Попробуйте изменить сценарий к следующему:

<script> 
    $(".commandclass").click(function(e){ 
     var url = $(this).attr("data-href"); 
     $(".commandtype").load(url); 
    }); 
</script> 

Первое изменение, что я удалил оберточной анонимную функцию (также фигурные скобки казался немного испорченным). Вышеприведенный код должен быть достаточным, если вы не создаете кнопки динамически. Второе изменение - $(this) - у вас есть несколько элементов .commandclass, и это изменение гарантирует, что вы выберете значение из элемента, на котором запущено событие click.

+1

Это может вызвать проблему загрузки элементов после запуска сценария. Вот почему хорошая практика состоит в том, чтобы обернуть функцию анона, отправленную в jquery – JNF

+0

Спасибо Dropout, ну ответьте. '$ (this)' похоже, почти то же самое, но это красивее. –

+0

Что касается функции анона. Я собираюсь идти вперед и покидать его. Я никогда не слышал, что это хорошая практика, чтобы удалить его. –