2015-08-04 3 views
1

Мне нужно применить функцию jquery три элемента, но с различными функциями, такими как fade in/out, FB.XFBML.parse и т. Д. Я попытался отложить эту функцию. не работаю, и я знаю, что я делаю что-то не так, я могу тебе помочь?JQuery Мне нужно применить ту же функцию с различными характеристиками

Это код JQuery:

function load(div, of) { 
    $(div).load(of, function() {  
     FB.XFBML.parse(document.getElementById('div-d')); 
     twttr.widgets.load(); 
    }).hide().fadeIn("slow");  
} 

$.getScript("jquery.cycle.all.js", function(data, textStatus, jqxhr) { 
    console.log(data); // Data returned 
    console.log(textStatus); // Success 
    console.log(jqxhr.status); // 200 
    console.log("Load was performed."); 
}); 

options = $.extend(options || {}, { 
    dataType: "script", 
    cache: true, 
    url: url 
}); 

$(document).ready(function(){ 
    $("#Reload").click(function() { 
     $("#result").html("result reloaded successfully"); 
    }); 
}); 

Кнопка 1:

<a href="#inicio" onClick="load('.div-d','road.php')" class="temas-deco-d">ROAD</a> 

Кнопка 2:

<a href="#inicio" onClick="load('.div-d','street.php')" class="temas-deco-d">STREET</a> 

Button3:

<a href="#inicio" onClick="load('.div-d','house.php')" class="temas-deco-d">house</a> 

Кнопка 1 хочу загрузить div без FB.XFBML.parse.

Две кнопки хотите загрузить DIV без fade effect

Я хочу кнопку три НАГРУЗКИ сценарий jquery.cycle.all.js

EDIT с кодом Брайаном:

сценарий:

 function load(div, of) 
{ 
    $(div).load(of, function() { 
}); 
} 
$('.botones-lateral-j').click(function() { 
    var $this = $(this) // cache jquery `this` object so we don't need to reinstantiate it every time we use it 

    var script = $this.data('script'); 
    var target = $this.data('target'); 
    var button = $this.data('button'); 

    console.log(script, target, button); // log data to make sure it's correct, remove before deployment 

    switch (button) { 
     case 'lateral': 
      $(target).load(of, function() {  
       twttr.widgets.load(); 
      }).hide().fadeIn("slow"); 
      break; 
     case 'button2': 
      $(target).load(of, function() {  
       FB.XFBML.parse(document.getElementById('div-d')); 
       twttr.widgets.load(); 
      }).hide(); 
      break; 
     case 'button3': 
      $.getScript("jquery.cycle.all.js", function(data, textStatus, jqxhr) { 
       console.log(data); // Data returned 
       console.log(textStatus); // Success 
       console.log(jqxhr.status); // 200 
       console.log("Load was performed."); 
      }); 
     break; 
    } 
}); 

кнопка:

<a href="#inicio" class="botones-lateral-j" data-script="<?php $_SERVER['DOCUMENT_ROOT']?>/dis/lateral-2.php" data-target="#lateral" data-button="lateral1">SIG</a> 

Я попробовал эффект плавного увеличения громкости, чтобы увидеть, если он удаляет кнопку данных lateral1 Это не работает, даже не изменить DIV :(

+1

Есть параметр, где вы можете указать тип кнопки эффект. Тогда в функции есть оператор switch, который разделяет эффект. – Script47

+0

Не могли бы вы привести мне пример? Я не знаю много информации о javascript – pTRONICA

+0

Проверьте свой синтаксис. Отсутствует «вокруг первого div», на getElementById вы пытаетесь получить доступ к # div-d, потому что я вижу только, что вы передаете параметр класса div-d, и если вы пытаетесь получить класс, просто получите доступ к нему, используя переданный вами параметр в – Eric

ответ

1

EDIT - в том числе прослушиватели событий и использование атрибута data-* вместо скрипта в коммутаторе.

HTML:

<a href="#inicio" class="temas-deco-d" data-script="road.php" data-target=".div-d" data-button="button1">ROAD</a> 
<a href="#inicio" class="temas-deco-d" data-script="street.php" data-target=".div-d" data-button="button2">STREET</a> 
<a href="#inicio" class="temas-deco-d" data-script="house.php" data-target=".div-d" data-button="button3">HOUSE</a> 

JS:

$('.temas-deco-d').click(function() { 
    var $this = $(this) // cache jquery `this` object so we don't need to reinstantiate it every time we use it 

    var script = $this.data('script'); 
    var target = $this.data('target'); 
    var button = $this.data('button'); 

    console.log(script, target, button); // log data to make sure it's correct, remove before deployment 

    switch (button) { 
     case 'button1': 
      $(target).load(script, function() {  
       twttr.widgets.load(); 
      }).hide().fadeIn("slow"); 
      break; 
     case 'button2': 
      $(target).load(script, function() {  
       FB.XFBML.parse(document.getElementById('div-d')); 
       twttr.widgets.load(); 
      }).hide(); 
      break; 
     case 'button3': 
      $.getScript("jquery.cycle.all.js", function(data, textStatus, jqxhr) { 
       console.log(data); // Data returned 
       console.log(textStatus); // Success 
       console.log(jqxhr.status); // 200 
       console.log("Load was performed."); 
      }); 
     break; 
    } 
}); 
+0

Может ли это быть клавишей класса, а не файлом? Это то, что я делаю много звонков в разные файлы. – pTRONICA

+0

Я не работаю, прошу простить мое невежество, я ставлю этот код под шахтой? и положите это на меня. – pTRONICA

+0

Правильный способ сделать это - присоединить прослушиватель событий к '.div-d', добавить атрибут' data- * '(возможно,' data-button'), а затем 'var button = $ (this) .data ('button') 'и основывать оператор switch на' button' вместо скрипта. Таким образом вы можете использовать одну и ту же кнопку «данных» для нескольких скриптов, а @pTRONICA - это заменит ваша функция 'load()' – Brian

1

Между случаи поставить стиль.

function load(styleType) { 
    switch (styleType) { 
     case "button1": 

     break; 

     case "button2": 

     break; 

     case "button3": 

     break; 
    } 
} 

Не забудьте также указать свои собственные параметры.

Если у вас есть какие-либо вопросы, просто отправьте сообщение.

+0

Большое спасибо, более или менее то, что я вижу, но я беспорядок, чтобы бежать. Посмотрим, смогу ли я привести полный пример, когда вы вернетесь домой. – pTRONICA

+1

Нет проблем.Я думал, что позволю тебе возиться с этим, поэтому я не дал полного ответа. – Script47

+0

Также не забудьте поставить галочку/ответы на голосование, которые помогли. : P – Script47

Смежные вопросы