我有一個圖像和下拉列表控件在我的頁面。我試圖通過圖像控件的click事件顯示dropdownlist項。
這在JQuery中可能嗎?或者給我一個替代的方法?
這是我的HTML
@Html.DropDownListFor(model => model.Subjects.Name, (IEnumerable<SelectListItem>)ViewBag.Subject, "--")
@Html.TextBoxFor(model => model.Subjects.Name, new { @data_otf_autocomplete = @Url.Action("Autocomplete_Subject"), @class = "Text_Subject_Name" }) <img src="~/Images/arrow-down.gif" alt="click to choose Subjects" id="arrow" />
通過點擊圖片[id='arrow']應打開dropdownlist[id=Subject_Name"]項?
我有一個相同的例子@ http://jsfiddle.net/an3ZT/基于這個例子,我創建了下面的代碼不起作用?
<script src="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"></script>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="Scripts/jquery.simulate.js"></script>
<script type="text/ecmascript">
$(document).ready(function () {
$("img").click(function () {
//alert("Hellow world");
//alert($("select").val());
$("select").simulate('mousedown');
});
});
</script>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<img src="https://www.google.com/images/srpr/logo11w.png"/>
請讓我知道我哪里做錯了?
作為打開a & lt選擇& gt元素,您不能本機模擬鼠標觸發器的事件;因此,您需要使用。simulate函數,但是,這是jQuery的附加庫。您需要導入以下內容:
jquery.simulate.js
解決辦法 如果您想在任何元素被點擊時觸發一個事件,用jQuery很容易做到。
例如,假設您有以下圖像:
<img src="someImage.jpg">
要觸發任何功能,只需使用document.ready()和img.click
$(document).ready(function(){
$("img").click(function(){
$("select").simulate('mousedown');
});
});
然而,當頁面上有多個img元素時,這就出現了一個問題;當然,除非您希望每個圖像在被單擊時都觸發下拉列表,否則最好為您希望觸發列表的圖像元素提供一些特定信息。
這可以通過給圖像一個id或一個類,或者任何屬性來實現,以區別于頁面上的其他圖像。這也可以用來創建一組調用列表的圖像元素。
使用id:
<img id="myImage">
$(document).ready(function(){
$("#myImage").click(function(){
$("select").simulate('mousedown');
});
});
使用類 您可以通過給多個元素相同的類來創建組
<img class="myImage">
$(document).ready(function(){
$(".myImage").click(function(){
$("select").simulate('mousedown');
});
//OR to be more specific
$("img.myImage").click(function(){});
});
使用屬性 您實際上可以設置一個自定義屬性,并使用它來區分html中的其他圖像。
<img someAttr="useThisOne">
$(document).ready(function(){
$("img").click(function(){
if($(this).attr("someAttr") == "useThisOne")
{
$("select").simulate('mousedown');
}
});
});
jsdild示例