2010-09-24 2 views
1

Я пытаюсь вызвать встроенный объект щелчок, нажав на другой DIV,JQuery: триггер встроенного объекта, нажав кнопку Div?

это код IVE пробовал:

$('.action-upload').livequery(function() 
{ 
$(this).click(function() 
{ 
    $('#button').trigger('click'); 

}); 

}); 

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

<object width="114" height="29" class="swfupload" data="js/swfupload/swfupload.swf?preventswfcaching=1285336584999" type="application/x-shockwave-flash" id="SWFUpload_0">(parameters)</object> 

это то, что код, как в моем HTML документа

<input type="button" id="button" /> 

Я не уверен, что им предполагается пытаться вызвать кнопку формы или объект, im угадывая объект, поскольку он не отображается как кнопка, когда страница отображается, она появляется как внедренный объект?

я использовал код на обычной кнопки ввода, которая работает, но когда я применить его к этому оно не

кого-нибудь есть какие-либо идеи, как я бы это сделать?

(ДИВО действия-загрузка просто нормальный ДИВ с BG изображением)

спасибо за ваше время;)

отредактирован для получения дополнительной информации:

вот сценарий я использовать в HTML

$('.action-upload').live(function() 
{ 
    $(this).click(function() 
    { 
     $('#button').trigger('click'); 
    });   
}); 

вот HTML:

<div class="action-upload">(bg image)</div> 

<div id="swfupload-control"> 

<input type="button" id="button" /> 

    <ul id="log"></ul> 

</div> 

и это то, что вместо кнопки формы в браузере (получил это от поджигатель)

<object width="114" height="29" class="swfupload" data="js/swfupload/swfupload.swf?preventswfcaching=1285348248401" type="application/x-shockwave-flash" id="SWFUpload_0"><param value="window" name="wmode"><param value="js/swfupload/swfupload.swf?preventswfcaching=1285348248401" name="movie"><param value="high" name="quality"><param value="false" name="menu"><param value="always" name="allowScriptAccess"><param value="movieName=SWFUpload_0&amp;uploadURL=%2Fupload-file.php&amp;useQueryString=false&amp;requeueOnError=false&amp;httpSuccess=&amp;assumeSuccessTimeout=0&amp;params=&amp;filePostName=uploadfile&amp;fileTypes=*.jpg%3B*.png%3B*.gif%3B*.pdf%3B*.html%3B*.ai%3B&amp;fileTypesDescription=Image%20files&amp;fileSizeLimit=5000&amp;fileUploadLimit=10&amp;fileQueueLimit=0&amp;debugEnabled=false&amp;buttonImageURL=%2Fjs%2Fswfupload%2Fwdp_buttons_upload_114x29.png&amp;buttonWidth=114&amp;buttonHeight=29&amp;buttonText=&amp;buttonTextTopPadding=0&amp;buttonTextLeftPadding=0&amp;buttonTextStyle=color%3A%20%23000000%3B%20font-size%3A%2016pt%3B&amp;buttonAction=-110&amp;buttonDisabled=false&amp;buttonCursor=-1" name="flashvars"></object> 

Я использую SWFUpload и пытаюсь запустить внедренный объект «нажмите» из DIV действия-загрузки

+0

Привет, можете ли вы разместить больше кода? Кроме того, вы можете использовать встроенный jquery.live(), а не плагин livequery – fehays

+0

hi fehays, спасибо за ваш комментарий, изменились, чтобы жить сейчас :) использовал livequery для чего-то другого и забыл изменить;) Я отредактировал свой вопрос, чтобы попытаться предоставить дополнительную информацию, есть ли что-нибудь, что вы хотели бы узнать конкретно? Еще раз спасибо – David

ответ

2

Если я правильно понял, вы пытаетесь запустить встроенный объект Flash для события click на кнопке HTML (<input type="button" ...>).

Вы не сможете выполнить это, используя только jQuery. Клики на объекте Flash обрабатываются объектом Flash. Чтобы выполнить то, что вы просите, вам нужно будет изменить источник Flash для внешнего вызова JavaScript. Как вы это достигаете, во многом зависит от того, какую версию Flash/ActionScript вы используете для создания файла.

ActionScript 3 имеет класс ExternalInterface, который вы можете использовать для вызова внешних функций JavaScript. В файле ActionScript 3, это будет выглядеть примерно следующим ...

Внутри обработчика щелчка элемента, вызовите JavaScript анонимную функцию:

ExternalInterface.call("function(){$('#button').trigger('click');}"); 

Если вы не контролируете Flash Object себя, вы не сможете делать то, что вы пытаетесь сделать.

+0

hi calvinf, спасибо за ваш ответ, im на самом деле пытается сделать это наоборот (нажмите кнопку html, используя jquery, чтобы вызвать событие flash), если я могу каким-то образом добавить код действия в swfupload.swf, есть ли Кстати, я могу использовать «ExternalInterface», чтобы он прослушивал щелчок jquery? спасибо за вашу помощь :) – David

+0

эй, извините, я вижу по ссылке, которую вы дали на внешнем интерфейсе, которую вы можете вызвать функцию ActionScript из javascript! Единственное, что у меня есть только swfupload.swf и нет .fla, я попытался найти его, но похоже, что он вообще не существует? у кого есть идеи, как я могу разобраться в этом? или любым другим способом я могу достичь этого? :) – David

+0

См. Страницу проекта SWFUpload в Google Code: http://code.google.com/p/swfupload/ - содержит все исходные файлы. – calvinf