2012-06-18 1 views
0

у меня есть этот кодэффекта запрос не работает, если приложен параметрами

<html> 
<head> 

<script src="jquery-1.7.2.min.js" type="text/javascript"></script> 
<script src="jquery-ui-1.8.20.custom.min.js" type="text/javascript"></script> 

<script type = "text/javascript"> 
function MyFunc(obj,method){ 
    // obj.hide("slow"); // This part is working fine i.e. it is hiding the paragraph 
    obj + "." + method + "(\"slow\")"; // This is not working 

$(function(){ 
    $("#pid1").click(function(){ 
     MyFunc($("#pid1"),"hide"); 
    }); 
}); 

</script 

</head> 

<body> 
<p id = "pid1">Test Paragraph</p> 
</body> 

</html> 

т.е. я хочу передать параметры в функцию JQuery скрыть и сформировать правильную строку для вызова эффекта, но он не работает, как и в код выше. Я что-то упускаю ?

ответ

1

Вы можете использовать квадратные скобки для доступа к свойству объекта со строкой:

function MyFunc(obj, method) { 
    obj[method]("slow"); 
} 

отметить также, что вы пропустили закрывающую фигурную скобку из MyFunc.

То, что вы сейчас делаете, просто создает строку, объединяя кучу строк с объектом. Это не вызовет ошибки, но ничего не сделает.

+0

спасибо за быстрый ответ! Вышеуказанное работает нормально. Но что, если у нас есть другие параметры, там тоже говорят направление, скорость. Как формироваться в этом случае? Скажем, я хочу создать эту строку obj.hide ("blind", {direction: "vertical"}, 1000). – niting112

+0

@ niting112 - прочитайте на ['call'] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Call) и [' apply'] (https: // разработчик. mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Apply) –

+0

Не могли бы вы рассказать, что обозначение, которое вы использовали, т.е. obj [method] («slow»). Любая документация? – niting112

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

  • Нет связанных вопросов^_^